0

如何通过关系访问它们来获取 coredata 托管对象的有序列表?

那是:

  • 具有以下实体:LIST、LIST_ITEM(包括“订单”字段)和 ITEM。
  • 假设我已经获取了我想要使用的列表
  • 然后,我可以使用 coredata 关系通过使用关系获取 LIST_ITEMS:例如“list1.listItems”,然后对于每个 LIST_ITEMS,我可以获得 ITEM(“listItem1.item”)

但是,如果我真的只想从 LIST 中根据 LIST_ITEM 中的“Order”字段从列表中获得有序的项目列表,那么最简单的方法是什么?

4

2 回答 2

2

您可以使用 NSSortDescriptor 对关系返回的项目进行排序,就像在常规获取请求中一样。例如:

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"order" ascending:YES] autorelease];
NSArray *sortedListItems =  [list1.listItems sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

这里的关键方法是[NSSet sortedArrayUsingDescriptors:]

于 2011-12-05T01:19:38.650 回答
1

我认为我正确理解了这个问题,但我认为从 CoreData 获取列表的最佳方法是创建一个复合谓词,然后以这种方式搜索项目。例如,如果我只在某一天寻找特定用户(另一个实体)的事件(实体)。然后我可以为 Event 条目创建一个 NSFetchRequest 并以 (user.name==%@) AND (event.date==%@) 的形式指定和指定用户名和日期的 NSPredicate

于 2011-12-05T00:18:08.677 回答