使用 NSFetchedResultsController 对核心数据对象进行排序
Posted
技术标签:
【中文标题】使用 NSFetchedResultsController 对核心数据对象进行排序【英文标题】:Sorting Core Data Objects using NSFetchedResultsController 【发布时间】:2013-04-11 06:26:35 【问题描述】:我有两个实体如下
项目 > 类别
每个项目可能有多个类别。
例如有 5 个项目,每个项目的排序类别为 release_Date。我想根据 release_Date 对所有这 5 个项目进行排序,表视图标题作为每个项目的 release_Date 值。
我想根据用户从弹出窗口中选择的类别值对这些项目进行排序。我还想在分段表视图中显示排序后的对象,表头是选择的类别值。
我为此使用 nsfetchedresultscontroller。我能够根据项目的名称对项目进行排序。但是我发现使用关系属性对它们进行排序没有运气。
任何形式的帮助都是可观的。
【问题讨论】:
【参考方案1】:如果我正确理解你的模型,你可以很容易地使用多个排序描述符来做到这一点。
NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"Categories.release_Date" ascending:NO];
NSArray *sortDescriptors = @[sortDescriptor1, sortDescriptor2];
[fetch setSortDescriptors:sortDescriptors];
【讨论】:
以上是关于使用 NSFetchedResultsController 对核心数据对象进行排序的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 3 中难以配置 NSFetchedResultsController