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
}
Tôi muốn thực hiện một phương pháp cho phép tôi khởi tạo đối tượng mới với cuộc gọi này:Cách tạo trình khởi tạo được chỉ định cho lớp con NSManagedObject trong Swift?
let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext)
Nhưng tôi nhận được lỗi:
Convenience initializer for Alternative must delegate with self.init
gì tôi cần phải thay đổi trong initalizer của tôi để làm công việc sử dụng ví dụ của tôi?
Câu hỏi bổ sung nhanh @ martin-r: Tôi đang cố gắng đặt chúng vào một tiện ích mở rộng lên NSManagedObject. Bạn có nghĩ rằng điều này nên có thể, như tôi nhận được một lỗi biên dịch. Dường như đang tìm NS_DESIGNATED_INITIALIZER từ NSManagedObject.h để sử dụng. Có suy nghĩ gì không? – Damien
@Damien: Không cần xem mã thực tế và thông báo lỗi chính xác. –
https: //gist.github.com/dglancy/2f1e313cfcc7d61cff8c – Damien