In meinem benutzerdefinierten NSManagedObject verwende ich einen fehlgeleiteten Initialisierer. Aber selbst wenn es fehlschlägt und ich NSManagedObjectContext speichern, wird das Objekt in Core Data gespeichert.Fehler beim Speichern von NSManagedObject
NSManagedObject:
class Foo: NSManagedObject {
@NSManaged var a: String
@NSManaged var b: String
convenience init?(context: NSManagedObjectContext, a: String?, b: String?) {
let description = NSEntityDescription.entity(forEntityName: "Foo", in: context)!
self.init(entity: description, insertInto: context)
if let a = a { self.a = a } else { return nil }
if let b = b { self.b = b } else { return nil }
}
}
Wie kann ich diese initializer scheitern und immer noch den Kontext sparen, ohne das ausgefallene Objekt mit gerettet werden?
Danke, ich habe immer und immer wieder getestet und habe gerade gemerkt, dass die Überprüfung vor dem 'self.init' erfolgen muss, was sehr logisch ist ... –