我有一个CoreData对象数组,每个对象都是Person
,每个Person
都有一个age
属性,类型为Integer32。
我的数组中充满了Person
个对象。我想按照age
属性对数组进行排序。
我该怎么做?
答案 0 :(得分:8)
应该如此简单:
NSArray *sortDescriptors = @[
[NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]
];
NSArray *sortedPeople = [people sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"%@", sortedPeople);
无论您是否在创建NSManagedObject
子类时选择“使用标量属性作为基本数据类型”(如果您决定创建它们),这都将起作用
答案 1 :(得分:0)
说“people”是你想要排序的Person对象数组......
NSArray *sortedPeople = [people sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2) {
if (p1.age > p2.age) return NSOrderedDescending;
else if (p1.age < p2.age) return NSOrderedAscending;
else return NSOrderedSame;
}