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
}
Я хочу сделать метод, который позволяет мне инициализировать новые объекты с этим вызовом:Как создать назначенный инициализатор для подкласса NSManagedObject в Swift?
let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext)
Но я получаю сообщение об ошибке:
Convenience initializer for Alternative must delegate with self.init
Что мне нужно изменить в моей initalizer чтобы мой пример использования работал?
Быстрый дополнительный вопрос @ martin-r: Я пытаюсь поместить их в расширение на NSManagedObject. Как вы думаете, это должно быть возможно, так как я получаю ошибку компиляции. Кажется, он ищет NS_DESIGNATED_INITIALIZER из NSManagedObject.h, который будет использоваться. Есть предположения? – Damien
@Damien: Не видно фактического кода и точного сообщения об ошибке. –
https: //gist.github.com/dglancy/2f1e313cfcc7d61cff8c – Damien