Я инстанцирование NSFetchedResultsController
с fetchRequest абстрактного класса:инстанцирование NSFetchedResultsController оканчивающегося неперехваченного исключением
private func setupFetchController() {
let fetchRequest : NSFetchRequest<NSFetchRequestResult> = SearchEntity.fetchRequest()
let fetchController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
self.fetchController = fetchController
}
SearchEntity
является абстрактным родительским классом Person
и Group
. Я использовал это, чтобы получить 2 объекта с 1 NSFetchedResultsController
. Однако аварий приложений, когда эта функция называется:
LibC++ abi.dylib: оканчивающийся неперехваченным исключением типа NSException
я сузил его до раскомментировав и комментирования создания NSFetchedResultsController
, У меня есть еще две функции, которые работают точно так же.
Что я делаю/происходит неправильно?
Редактировать: Добавить к этому. Я могу вручную извлечь SearchEntity
, просто используя context.performFetch(...)
, который дает мне правильные результаты. Однако, следовательно, имя, я собираюсь выполнить поиск, чтобы я мог эффективно обновлять данные.
edit2:
Пример той же функции в других местах, которые функционируют:
private func setupFetchController() {
let fetchRequest : NSFetchRequest<NSFetchRequestResult> = Person.fetchRequest()
// Sort Persons
let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true)
let sortDescriptor2 = NSSortDescriptor(key: "lastName", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor, sortDescriptor2]
// Filter Persons (only iType = 1)
let predicate = NSPredicate(format: "iType == %i", 1)
fetchRequest.predicate = predicate
// Create the FetchController
let fetchController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: "sectionName", cacheName: nil)
self.fetchController = fetchController
}
Вы сказали: «У меня есть еще две из этих функций с точно таким же стилем, который работает». Что вы имели в виду? И обе функции одного типа? Я имею в виду, что они функции FRC? – Mannopson
Я добавлю их в OP, они также создают экземпляр FetchResultsController, но с другим объектом. – Emptyless
Единственная разница не в добавлении sortDescriptors/predicates – Emptyless