如何通过关系访问coredata管理对象来获得有序列表



如何通过关系访问coredata管理对象来获得有序列表?

:

  • 有以下实体:LIST、LIST_ITEM(包括一个"Order"字段)和ITEM。
  • 假设我已经获取了我想要使用
  • 的列表然后我可以使用coredata关系通过使用关系来获得LIST_ITEMS:例如:"。listtitems",然后对于每个LIST_ITEMS,我可以得到ITEM("listtitem1 . ITEM")

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

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

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

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

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

最新更新