【发布时间】:2012-08-05 15:15:48
【问题描述】:
我有一个从自定义类创建的对象数组。每个对象都有一个 NSDate 属性。根据日期属性对所有这些对象进行排序的最简单快捷的方法是什么? (按从最近到最近的顺序)。
【问题讨论】:
标签: objective-c ios object nsdate
我有一个从自定义类创建的对象数组。每个对象都有一个 NSDate 属性。根据日期属性对所有这些对象进行排序的最简单快捷的方法是什么? (按从最近到最近的顺序)。
【问题讨论】:
标签: objective-c ios object nsdate
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"thisIsTheNameOfYourDateProperty" ascending:NO];
NSArray *orderedArray = [arrayOfCustomObjects sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
【讨论】:
试试这个:
NSArray* newArray = [array sortedArrayUsingComparator: ^NSComparisonResult(MyClass *c1, MyClass *c2)
{
NSDate *d1 = c1.date;
NSDate *d2 = c2.date;
return [d1 compare:d2];
}];
还有一些方法可以就地对可变数组进行排序,类似于上述。
编辑:我知道还有其他方法可以使用更少的代码来做到这一点,但我真的更喜欢使用块枚举器来处理各种事情,所以我发现实践起来很有用。您还可以调整这些以使用更多非标准排序(整数与对象)并使用 NSLog() 实际记录发生的事情...)。
【讨论】: