Swift-CoreData: error: Failed to call designierten Initialisierer auf NSManagedObject Klasse 'NSManagedObject'
Bin ich mit core data speichern Sie eine Kategorie in vc1 und möchten zur Liste hinzufügen von Eigenschaften zu einer Liste in vc2. Mein Datenmodell ist eine Kategorie aus, um viele Eigenschaften aufgelistet.
Ich bin das hinzufügen der Kategorie, wie dies in vc1:
func createNewCategory() {
var category: NSManagedObject! = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as NSManagedObject
category.setValue(self.categoryTextField.text, forKey: "name")
var error: NSError? = nil
self.context.save(&error)
}
Aufbau der Daten in vc2:
func setupCoreData() {
var appDelegate: AppDelegate = (UIApplication.sharedApplication()).delegate as AppDelegate
self.context = appDelegate.managedObjectContext!
var request: NSFetchRequest = NSFetchRequest(entityName: "Category")
if (self.context.executeFetchRequest(request, error: nil)) {
var error: NSError? = nil
self.listData = self.context.executeFetchRequest(request, error: &error)
self.managedObject = self.listData.objectAtIndex(0) as NSManagedObject
}
}
Kracht es in der letzten Zeile: self.managedObject = ...
sagen:
CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject'
Das verwaltete Objekt ist in dem array, wenn ich einen break point und drucken Sie das array. Was ist falsch?
- Sie die Ausführung der fetch-Anfrage zweimal. Warum?
- Ich war die überprüfung, wenn es existierte, aber es schien zu funktionieren, ohne dass es...
- Der test prüft nur, ob der Abruf gibt ein array zurück, auch leere.
- Ok, gut zu wissen. Ich bin ein Neuling, wie Sie sagen können,:) vielen Dank für Ihre Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den engagierten Initialisierer ist
Klar, Sie sind nicht das einfügen eines neuen Objekts, so dass Sie wirklich wollen, einen optionalen Wert. Vielleicht haben Sie erklärt Ihrer Klasse variable
managedObject
alsNSManagedObject!
? Versuchen Sie, diese zuNSManagedObject?
und auch die Betreiberas?
.Einer Entität in CoreData ist äquivalent zu einer Klasse. Wussten Sie, fügen Sie die Einheit zu Ihrem managed-object-Modell, und der Unterklasse, die die Entität? (Check out die programming guide für einen volleren hintergrund.)