В моем настраиваемом объекте NSManagedObject я использую инициализатор с ошибкой. Но даже когда он терпит неудачу, и я сохраняю NSManagedObjectContext, объект сохраняется в Core Data.Неудача 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 }
}
}
Как я могу не этот инициализатор и по-прежнему сохраняя контекст, не имея неисправный объект, чтобы спастись?
Спасибо, я тестировал снова и снова и просто заметил, что проверка должна быть выполнена до 'self.init', что очень логично ... –