4

CoreDataオブジェクトの配列があり、各オブジェクトはPersonであり、それぞれはInteger32型の属性をPerson持っています。age

Person私の配列はオブジェクトでいっぱいです。age配列を属性で並べ替えたい。

これどうやってするの?

4

2 に答える 2

8

それは次のように単純でなければなりません:

NSArray *sortDescriptors = @[
  [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]
];

NSArray *sortedPeople = [people sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"%@", sortedPeople);

これは、サブクラスを作成するときに「プリミティブデータ型にスカラープロパティを使用する」を選択するかどうかに関係なく機能しますNSManagedObject(サブクラスを作成する場合でも)

于 2012-11-20T00:24:22.790 に答える
0

「人」とは、並べ替える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;
}
于 2012-11-20T00:00:36.200 に答える