Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为NSFetchedResultsController的不同部分使用不同的NSSortDescriptor?(swift)_Swift_Uitableview_Nsfetchedresultscontroller - Fatal编程技术网

如何为NSFetchedResultsController的不同部分使用不同的NSSortDescriptor?(swift)

如何为NSFetchedResultsController的不同部分使用不同的NSSortDescriptor?(swift),swift,uitableview,nsfetchedresultscontroller,Swift,Uitableview,Nsfetchedresultscontroller,我有一个简单的UITableView应用程序,有1个核心数据实体和NSFetchedResultsController。我有两个由FRC自动拆分的部分: let sortDescriptor = NSSortDescriptor(key: "finished", ascending: true) let sortByStartDate = NSSortDescriptor(key: "endDate", ascending: true) fetchRequest.sortDescriptors

我有一个简单的UITableView应用程序,有1个核心数据实体和NSFetchedResultsController。我有两个由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)
这将按[sortDescriptor,sortByStartDate]对两个部分进行排序

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


谢谢你的帮助

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

否则,我会将设置更改为使用第二个
NSFetchedResultsController
,这样每个部分都有一个。在两者上使用谓词来筛选
finished==true
finished==false

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