Ich bin ein NSFetchedResultsController
mit einem fetchRequest einer abstrakten Klasse instanziieren:Instanziieren NSFetchedResultsController mit abgefangene Ausnahme beendet
private func setupFetchController() {
let fetchRequest : NSFetchRequest<NSFetchRequestResult> = SearchEntity.fetchRequest()
let fetchController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
self.fetchController = fetchController
}
Die SearchEntity
ist eine abstrakte Superklasse von Person
und Group
. Ich benutzte dies, um 2 Entitäten mit 1 NSFetchedResultsController
abrufen zu können. Doch die App stürzt ab, wenn diese Funktion aufgerufen wird:
libC++ abi.dylib: mit abgefangene Ausnahme vom Typ NSException Abschluss
Ich habe es verengt Auskommentierung nach unten und kommentieren die Schaffung des NSFetchedResultsController
. Ich habe 2 weitere dieser Funktionen mit genau dem gleichen Stil, der funktioniert.
Was mache ich/geht es schief?
edit: zu Hinzufügen. Ich bin in der Lage, die SearchEntity
manuell zu holen, indem ich einfach context.performFetch(...)
benutze, die mir korrekte Ergebnisse gibt. Daher werde ich den Namen suchen, also muss ich in der Lage sein, effizient zu aktualisieren.
edit2:
Beispiel für gleiche Funktion an anderer Stelle, die funktioniert:
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
}
Sie haben gesagt: "Ich habe 2 weitere dieser Funktionen mit genau dem gleichen Stil, die funktionieren." Was meinst du? Und beide Funktionen sind vom selben Typ? Ich meine, sie sind FRC-Funktionen? – Mannopson
Ich werde sie dem OP hinzufügen, sie instanziieren auch einen FetchResultsController, aber mit einer anderen Entität. – Emptyless
Der einzige Unterschied ist nicht hinzufügen sortDescriptors/Prädikate – Emptyless