我做了一些研究,找不到简单的核心数据问题的答案。
这是简化的对象模型:
Person -->> Events
Event --> Date
我想要做的是查询所有人并按最近的事件对他们进行排序。
我在谓词中查看了SUBQUERY上的一些帖子。但是,我不知道如何查询最新的。我不能在排序描述符中使用“event.date”,因为它是NSSet不允许使用。
一些代码供参考......
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// The following errors:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"event.date" ascending:NO selector:nil];
感谢任何帮助。
答案 0 :(得分:0)
您正在向后解决问题。您应该获取按日期排序的Event
个对象,然后向每个Event
对象询问其相关的Person
个对象。
您可以创建子查询谓词来查找Event
个对象,但不能对关系进行排序。
答案 1 :(得分:0)
我通过向Person对象添加一个新的日期字段“lastEvent”解决了这个问题,该对象使用最新的事件日期进行了更新。这样我就可以通过“lastEvent”字段进行排序。