cocoa - 基于 NSDate 类型的属性对自定义对象的 NSArray 进行排序

标签 cocoa sorting nsarray

我有一个包含 AEMEvent 自定义对象的 NSArray。此 AEMEvent 类的属性之一是 NSDate 类型的 startDate

@interface AEMEvent : NSObject
{
    //.....
    NSDate *startDate;
    //..........
}

我想根据此属性对此数组进行排序,因此输出将是一个 NSArray ,其中包含按 startDate 排序的 AEMEvent 对象属性。

我看到了这个有趣的答案,使用 -[NSArraysortedArrayUsingSelector:-[NSMutableArray 对 NSDate 对象的 NSArray 进行排序sortUsingSelector:] 并传递 @selector(compare:) 作为参数,并想知道是否有办法在我的情况下使用它 - Sort NSArray of date strings or objects

最佳答案

// Sort AMEvent by startDate 

NSSortDescriptor * firstDescriptor = [[[NSSortDescriptor alloc] 
                                       initWithKey:@"startDate" ascending:YES 
                                       selector:@selector(caseInsensitiveCompare:)]

NSArray * descriptors = [NSArray arrayWithObjects:firstDescriptor, nil];  
NSArray * sortedArray = [yourArray sortedArrayUsingDescriptors:descriptors];

关于cocoa - 基于 NSDate 类型的属性对自定义对象的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584142/

相关文章:

Objective-C 新手问题 : global instances

java - 根据一个数组对两个数组进行排序

arrays - shell脚本将文本文件存储到数组中并将其打印出来

cocoa - 在我的代码中找不到泄漏

iphone - 根据另一个数组中的对象从数组中删除特定对象

objective-c - 如何从所有类别的通用粘贴板中读取数据?

objective-c - 使用 KVC 分配给 SEL 类型的属性

python - Python 中的自定义排序顺序

iphone - 全局 objectForKey 的类别 : safety

swift - NSSplitViewItem.isCollapsed 忽略动画持续时间