iOS 5/Lion Core Data 有序关系:指定顺序?

Posted

技术标签:

【中文标题】iOS 5/Lion Core Data 有序关系:指定顺序?【英文标题】:iOS 5/Lion Core Data ordered relationships: specify order? 【发布时间】:2011-12-13 21:41:29 【问题描述】:

我正在尝试使用 Core Data 和它的有序关系功能,但我只是找不到如何实际指定排序。我将我的关系标记为“有序”,但看不到我设置的位置,例如“按属性 XXX 降序排列”。

【问题讨论】:

【参考方案1】:

有序关系仅表示以任意方式排序。 (例如由用户订购。)

如果你想要一个与你的属性相关的订单,在你的获取请求中添加一个排序描述符:

NSSortDescriptor* sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray* sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

【讨论】:

所以你是说设置这个'ordered'标志会使CoreData为托管对象生成NSOrderedSet属性,并在不同的上下文中保持它的顺序?我做对了吗? 使用 NSOrderedSet 的顺序在启动期间保持(它在磁盘上持久存在),是的。使用 NSSortDescriptor 它在获取时排序。 @gcamp 如何获得这个有序集?只获取“主要”实体并使用它的关系属性?没有办法获得“次要”实体并根据它的“主要”有序关系对其进行排序,对吧?

以上是关于iOS 5/Lion Core Data 有序关系:指定顺序?的主要内容,如果未能解决你的问题,请参考以下文章

遍历 iOS Core Data 关系

iOS Core Data NSFetchRequest groupby 关系对象

iOS 使用关系检索和排序 Core Data 实体

iOS Core Data 对多关系插入/获取

iOS Core Data:为 Rails 多态关联设置关系的方法

在 iOS 的 Core Data 中建模一对多关系