我的核心数据模型的描述:
- 项目和问题实体
- 项目有一个有序的一对多关系至已命名问题的问题
- 问题与名为parentProject 的项目具有一对一的关系
这是我获取问题的代码:
let fetchRequest = NSFetchRequest(entityName: "Issue")
fetchRequest.predicate = NSPredicate(format: "parentProject CONTAINS[cd] %@", argumentArray: [project])
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
let frc = NSFetchedResultsController(
fetchRequest: fetchRequest,
managedObjectContext: dataManager.context,
sectionNameKeyPath: nil,
cacheName: nil)
return arc
尽管我有来自项目对象的所有问题,但我更喜欢使用获取的结果控制器来获取问题,因此它们将始终更新,并且我喜欢与表的集成。我也喜欢在使用 FRC 显示项目之前导航控制器屏幕中的这一点。
正如您在代码中看到的,问题按名称参数排序。
不过,我希望它们按照我将它们保留在项目的 NSMutableOrderedSet 中的顺序进行排序。
AFAIK 当它用于核心数据时,我无法将 NSSortDescriptor 与比较器/选择器一起使用。
你知道该怎么做吗?提前致谢。
您可能不想听到这个,但不幸的是,您不能。 NSFetchedResultsController 无法根据有序的一对多关系使用 sortDescriptors 进行排序。您应该向 Apple 提交错误。您应该放弃 NSFetchedResultsController 并自己处理它的委托方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)