【发布时间】:2010-04-06 05:20:29
【问题描述】:
我想从 CoreData 中检索最近添加的记录。我想知道这是否可以使用 NSPredicate?如果有,怎么做?
例如我在部门和员工之间有一对多的关系,我想获取最近使用的员工记录。 Staff 表有一个可以使用的日期字段。
我不想获取所有员工记录,然后寻找正确的记录。请注意,CoreData 将相关记录存储在 NSSet 中。
【问题讨论】:
标签: iphone core-data nspredicate
我想从 CoreData 中检索最近添加的记录。我想知道这是否可以使用 NSPredicate?如果有,怎么做?
例如我在部门和员工之间有一对多的关系,我想获取最近使用的员工记录。 Staff 表有一个可以使用的日期字段。
我不想获取所有员工记录,然后寻找正确的记录。请注意,CoreData 将相关记录存储在 NSSet 中。
【问题讨论】:
标签: iphone core-data nspredicate
我认为谓词不会满足您在这里的要求。相反,您可以做的是获取单个记录,其中排序描述符设置为按降序对日期进行排序。您需要修改您的 fetch 请求以包含以下内容:
NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[fetchRequest setFetchLimit:1];
这应该会为您提供具有最新日期属性的 Staff 对象。请注意,如果您使用的是 SQLite 存储,则排序是在 SQLite 层完成的,并且只获取单个结果。
【讨论】: