我有简单的 UITableView 应用程序,带有 1 个核心数据实体和 NSFetchedResultsController。我有 2 个部分,由 FRC 自动分割:
let sortDescriptor = NSSortDescriptor(key: "finished", ascending: true)
let sortByStartDate = NSSortDescriptor(key: "endDate", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor, sortByStartDate]<br/>
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: "finished", cacheName: nil)
在 View Controller 中:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return fetchedResultsController.sections!.count
}
这按 [sortDescriptor, sortByStartDate] 对两个部分进行排序。
问题: 通过另一个 NSSortDescriptor 对第二部分进行排序或只是以不同方式排序的最简单方法是什么(我是编程新手)?
感谢您的帮助!
最佳答案
取决于你如何处理尚未完成的项目。如果它们的 endDate
为 NULL
,则它们没有相对排序。因此,您可以在获取请求上添加第三个排序描述符,以便在第二部分中进行排序。
否则我会更改设置以使用第二个NSFetchedResultsController
,这样每个部分都有一个。对两者使用谓词来过滤 finished == true
或 finished == false
。
关于swift - 如何对 NSFetchedResultsController 的不同部分使用不同的 NSSortDescriptor ? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35598297/