В 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 и свойство объекта, который я выбираю. Есть идеи, что может случиться?