CoreData: ошибка: неправильное использование API: ошибка при использовании SectionNameKeyPath в NSFetchedResultsController - PullRequest
0 голосов
/ 28 апреля 2018

В iOS10 я получаю эту ошибку, когда я вызываю executeFetch () с NSFetchedResultsController, когда я пытаюсь передать SectionNameKeyPath:

CoreData: ошибка: Неправильное использование API: Попытка сериализовать доступ к хранилищу для не владеющего координатором

Вот некоторые из соответствующих кодов:

    let sectionName = NSSortDescriptor(key: "testClass", ascending: true)
let number = NSSortDescriptor(key: "ordinal", ascending: true)
let inventoryName = NSSortDescriptor(key: "name", ascending: false)
fetchRequest.sortDescriptors = [sectionName, number, inventoryName]

if let srcName = sources.fetchedObjects?[0].srcName { //TODO: this is good for 1 source, multiple sources will require an external "source" variable.
    let predicate = NSPredicate(format: "%@ == %K", srcName, "mySource.srcName")
    fetchRequest.predicate = predicate
}

let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.moc, sectionNameKeyPath: "testClass", cacheName: "Root")
aFetchedResultsController.delegate = self
_options = aFetchedResultsController

do {
    try _options!.performFetch()
} catch {
    let nserror = error as NSError
    fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}

Выборка все еще запускается, но я получаю кучу ошибок, описанных выше, и полагаю, что в конечном итоге это приведет к сбою приложения чуть позже. Если я передам nil для SectionNameKeyPath, ошибка не произойдет (но, конечно, мне нужны разделы в результате для секционированного представления таблицы). «TestClass» - это строка в coredata и свойство объекта, который я выбираю. Есть идеи, что может случиться?

...