如何在NSFetchedResultsController的不同部分使用不同的NSSortDescriptor? (迅速)

时间:2016-02-24 09:34:47

标签: swift uitableview nsfetchedresultscontroller

我有一个简单的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)

在ViewController中:

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return fetchedResultsController.sections!.count
}

这两个部分按[sortDescriptor,sortByStartDate]。

排序

问题: 什么是最简单的方法(我是编程中的新手)用另一个NSSortDescriptor对第二部分进行排序还是只是排序不同?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

取决于您如何处理尚未完成的项目。如果他们有endDate NULL他们没有相对排序。因此,您可以在获取请求中添加第三个排序描述符,以便在第二部分中进行排序。

否则我会将设置更改为使用第二个NSFetchedResultsController,因此每个部分都有一个。在两者上使用谓词来过滤finished == truefinished == false