CoreDataオブジェクトの配列があり、各オブジェクトはPerson
であり、それぞれはInteger32型の属性をPerson
持っています。age
Person
私の配列はオブジェクトでいっぱいです。age
配列を属性で並べ替えたい。
これどうやってするの?
CoreDataオブジェクトの配列があり、各オブジェクトはPerson
であり、それぞれはInteger32型の属性をPerson
持っています。age
Person
私の配列はオブジェクトでいっぱいです。age
配列を属性で並べ替えたい。
これどうやってするの?
それは次のように単純でなければなりません:
NSArray *sortDescriptors = @[
[NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]
];
NSArray *sortedPeople = [people sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"%@", sortedPeople);
これは、サブクラスを作成するときに「プリミティブデータ型にスカラープロパティを使用する」を選択するかどうかに関係なく機能しますNSManagedObject
(サブクラスを作成する場合でも)
「人」とは、並べ替える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;
}