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
}
Voglio fare un metodo che mi permette di inizializzare i nuovi oggetti con questo invito:Come creare un inizializzatore designato per la sottoclasse NSManagedObject in Swift?
let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext)
Ma ottengo l'errore:
Convenience initializer for Alternative must delegate with self.init
cosa ho bisogno di cambiare nella mia initalizer per far funzionare il mio esempio di utilizzo?
Domanda aggiuntiva rapida @ martin-r: Sto cercando di collocarli in un'estensione su NSManagedObject. Pensi che questo dovrebbe essere possibile, visto che sto ottenendo un errore di compilazione. Sembra che stia cercando NS_DESIGNATED_INITIALIZER da NSManagedObject.h da utilizzare. qualche idea? – Damien
@Damien: non senza visualizzare il codice effettivo e il messaggio di errore esatto. –
https: //gist.github.com/dglancy/2f1e313cfcc7d61cff8c – Damien