gpt4 book ai didi

objective-c - 比较各种 NSObject 子类的 3 个数组

转载 作者:行者123 更新时间:2023-12-04 06:16:13 25 4
gpt4 key购买 nike

我有一个包含 3 个 NSArrays 的 NSDictionary,

- posts
- comments
- likes.

并且在每个数组中都有一致的 NSObject 子类:
- Post
- Comment
- Like

通常,我会将这三个数组中的所有对象放入一个数组中,并使用它们都包含的相同变量进行比较,但在这种情况下, Posts有变量 dateOfUploadLikeComment具有相同的变量,日期。

如何使用变量 date 比较这三个数组中的对象和 dateOfUpload在降序中创建所有对象的一个​​大数组?

最佳答案

另一种方法是将所有对象添加到一个大数组中,然后使用块进行排序,如下所示:

// Create the array with all the objects
NSMutableArray *stuff = [NSMutableArray arrayWithArray:posts.allValues];
[stuff addObjectsFromArray:comments.allValues];
[stuff addObjectsFromArray:likes.allValues];

// Sort it by using a block
NSArray *sortedStuff = [stuff sortedArrayUsingComparator:^(id obj1, id obj2) {
NSDate *date1 = [obj1 respondsToSelector:@selector(date)]? [obj1 date] : [obj1 dateOfUpload];
NSDate *date2 = [obj2 respondsToSelector:@selector(date)]? [obj2 date] : [obj2 dateOfUpload];
return [date2 compare:date1]; // Objects are reversed to get descending order
}];

关于objective-c - 比较各种 NSObject 子类的 3 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com