如何按整数属性对Core Data对象数组进行排序?

时间:2012-11-19 23:33:18

标签: iphone objective-c sorting nsarray

我有一个CoreData对象数组,每个对象都是Person,每个Person都有一个age属性,类型为Integer32。

我的数组中充满了Person个对象。我想按照age属性对数组进行排序。

我该怎么做?

2 个答案:

答案 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;
}