can*_*boy 11 iphone core-data objective-c ios
(抱歉长标题)
我有一个自定义对象Person,它又有一个NSSet名为Appointment的自定义对象.因此,一个人可以有几个约会.约会的值为startTime和endTime.
这些是核心数据NSMangagedObject类.
@interface Person : NSManagedObject
@property (nonatomic, retain) NSString *personName;
@property (nonatomic, retain) NSSet *appointments;
// etc
@end
@interface Appointment : NSManagedObject
@property (nonatomic, retain) NSNumber * startSecond;
@property (nonatomic, retain) NSNumber * endSecond;
// etc
@end
Run Code Online (Sandbox Code Playgroud)
我如何获得人员名单,按照他们任命中的最早开始时间顺序排列?
Ell*_*eal 38
您可以使用排序描述符和KVC集合运算符:
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];
Run Code Online (Sandbox Code Playgroud)
例如,在CoreData fetch中:
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];
[request setSortDescriptors:@[sortDescriptor]];
NSError *error = nil;
NSArray *sortedResults = [context executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)
或者只是对数组进行排序:
NSArray *people = @[...];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"appointments.@min.startSecond" ascending:YES];
NSArray *sortedPeople = [people sortedArrayUsingDescriptors:@[sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)
有关KVC收集操作员的更多信息,请参阅KVC编程指南.
| 归档时间: |
|
| 查看次数: |
10127 次 |
| 最近记录: |