Как вызвать обновление раздела в NSFetchedResultsController - PullRequest
1 голос
/ 22 января 2020

Я использую NSFetchedResultsController для отображения списка тренировок, сгруппированных по разделам с датой их завершения.

Графически это можно представить так:

ЯНВ 20 , 2020

Тренировка 1

Тренировка 2

ЯНВ 21, 2020

Тренировка 1

Тренировка 2

Отображение каждого раздела - это общее расстояние, пройденное пользователем в этот день.

Всякий раз, когда я обновляю любую тренировку (изменяю ее расстояние), ячейки tableView обновляются, но раздел, который содержит общее расстояние за день не меняется.

Мне нужно перезагрузить tableView, чтобы изменения вступили в силу.

Метод делегата в NSFetchedResultsControllerDelegate : controller(_:didChange:atSectionIndex:for:) is вызывается только при добавлении или удалении нового раздела.

Я искал много вопросов SO, но не нашел решения. Было бы замечательно, если бы кто-нибудь указал мне правильное направление в этом отношении.

Ниже описано, как я создаю свой NSFetchResultsController

    lazy var fetchedResultsController: NSFetchedResultsController<CD_Run> = {

        let fetchRequest = NSFetchRequest<MY_ENTITY>(entityName: "MY_ENTITY")

        let sectionSortDescriptor = NSSortDescriptor(key: "daySectionIdentifier", ascending: false)
        let startTimeSortDescriptor = NSSortDescriptor(key: "startTime", ascending: false)

        fetchRequest.sortDescriptors = [sectionSortDescriptor, startTimeSortDescriptor]
        fetchRequest.fetchBatchSize = 200

        let controller = NSFetchedResultsController(fetchRequest: fetchRequest,
                                                    managedObjectContext: CoreDataManager.shared()._managedObjectContext,
                                                    sectionNameKeyPath: "daySectionIdentifier",
                                                    cacheName: nil)
        controller.delegate = self
        return controller
    }()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...