class Alternative: NSManagedObject {
@NSManaged var text: String
@NSManaged var isCorrect: Bool
@NSManaged var image: NSData
}
convenience init(text: String, isCorrect: Bool, entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext!) {
let alternative = Alternative(entity: entity, insertIntoManagedObjectContext: context) as Alternative
alternative.text = text
alternative.isCorrect = isCorrect
return alternative
}
Chcę, aby metodę, która pozwala mi zainicjować nowe obiekty z tej rozmowy:Jak zrobić wyznaczonego inicjatora dla podklasy NSManagedObject w Swift?
let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext)
ale pojawia się błąd:
Convenience initializer for Alternative must delegate with self.init
Co muszę zmienić w moim initalizer aby mój przykład użycia działał?
Szybkie dodatkowe pytanie @ martin-r: Próbuję umieścić je w rozszerzeniu na NSManagedObject. Czy uważasz, że to powinno być możliwe, ponieważ dostaję błąd kompilacji. Wygląda na to, że należy użyć NS_DESIGNATED_INITIALIZER z NSManagedObject.h. jakieś pomysły? – Damien
@Damien: Nie bez wyświetlenia rzeczywistego kodu i dokładnego komunikatu o błędzie. –
https: //gist.github.com/dglancy/2f1e313cfcc7d61cff8c – Damien