【发布时间】:2013-04-09 22:05:07
【问题描述】:
我的 CoreData 数据库中有对象具有 NSDate 类型的“日期”属性。如何获取具有 10 个最早日期的对象?
这是我目前所拥有的:
NSFetchRequest *fetchRequest = [NSFetchRequest new];
fetchRequest.entity = [NSEntityDescription entityForName:NSStringFromClass([MyManagedObject class]) inManagedObjectContext:self.database.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSArray *result = [self.database.managedObjectContext executeFetchRequest: fetchRequest error: nil];
我相信这会将我所有的托管对象按排序顺序返回,但我真的只需要 10 个最新的对象。我怎样才能做到这一点?使用NSFetchRequest 对它们进行排序而不是全部获取它们然后以编程方式对其进行排序会更快吗?
【问题讨论】:
-
添加 fetchRequest.fetchLimit = 10。对于该请求,您将获得最多 10 个实体。
标签: ios objective-c core-data