Swift NSFetchedResultsController не секционируется на основе sectionNameKeyPath - PullRequest
2 голосов
/ 19 июня 2019
lazy var fetchedResultsController: NSFetchedResultsController<StoryTemplatePack> =
    {
        let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext

        var frc: NSFetchedResultsController<StoryTemplatePack> = NSFetchedResultsController(fetchRequest: self.createFetchRequest(), managedObjectContext: managedObjectContext, sectionNameKeyPath: "sectionnum", cacheName: nil)
        frc.delegate = self

        return frc
}()

// FetchedResultsController: Create Request
func createFetchRequest() -> NSFetchRequest<StoryTemplatePack> {
    let fetchRequest = NSFetchRequest<StoryTemplatePack>(entityName: "StoryTemplatePack")

    fetchRequest.predicate = NSPredicate.init(format: "productidentifier != nil")

    fetchRequest.sortDescriptors = [
        NSSortDescriptor(key: "isfeatured", ascending: false),
        NSSortDescriptor(key: "ispurchased", ascending: true),
        NSSortDescriptor(key: "name", ascending: true)
    ]


    return fetchRequest
}

Результаты должны быть разделены в соответствии со свойством sectionnum в StoryTemplatePack (это временное свойство, рассчитанное в коде).

Когда я зацикливаюсь на результатах NSFetchedResultsController, он показывает правильные номера разделов и названия пакетов рассказов.Там должно быть 3 раздела, но FRC сообщает только 1 раздел.Полученные результаты также показывают, что я сортирую результаты правильно, так что значения сечения монотонно растут.

---- dumping frc, num sections: 1
    section 0 pack Incredible Journeys
    section 0 pack Out for a Date
    section 0 pack Party Time
    section 1 pack Holiday Craziness
    section 1 pack In the Office
    section 1 pack On the Internets
    section 1 pack On the Job
    section 1 pack School Daze
    section 1 pack Social Networking
    section 1 pack TV Troubles
    section 1 pack Technology Takes Over
    section 2 pack Christmas Shenanigans
---- done dumping

self.fetchedResultsController.sections!.count возвращает 1, когда должно вернуться 3.

Что я делаю неправильно или отсутствует?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...