如何使用NSFetchedResultsController管理多节collectionview

时间:2018-12-07 19:58:49

标签: swift core-data uicollectionview nsfetchedresultscontroller

我正在创建一个基于collectionView的图库,该图库应显示来自Core数据的图像。

我正在使用NSFetchedResultsController来获取和填充数据。 我的模型如下所示:

+-----------+-------------+
| Attribute | Type        |
+-----------+-------------+
| data      | Binary Data |
+-----------+-------------+
| date      | Date        |
+-----------+-------------+
| isPinned  | Boolean     |
+-----------+-------------+

FetchedResultsController的初始化:

private func initializeFetchedResultsController() {
    let request = NSFetchRequest<BaseMediaEntity>(entityName: BaseMediaEntity.className)
    let dateSort = NSSortDescriptor(key: "date", ascending: false)
    request.sortDescriptors = [dateSort]
    request.fetchBatchSize = 20

    let moc = DBManager.manager.dataStack.managedObjectContext
    fetchedResultsController = NSFetchedResultsController(fetchRequest: request,
                                                          managedObjectContext: moc,
                                                          sectionNameKeyPath: "groupByMonth",
                                                          cacheName: nil)
    fetchedResultsController.delegate = self

    do {
        try fetchedResultsController.performFetch()
    } catch {
        fatalError("Failed to initialize FetchedResultsController: \(error)")
    }
}

groupByMonth只是从日期算起的每月格式化的字符串, 因此画廊按月排序。 我的问题是:

我需要在集合视图的顶部实现已设置为isPinned = true的所有图像的固定部分。 是否可以设置多个sectionNameKeyPaths?或如何解决这个问题?谢谢!

0 个答案:

没有答案