swift - 防止在 CoreData 中使用生成的初始化程序
问题描述
我想阻止为 CoreData ManagedObject 使用标准 Xcode 生成的 Initializer,因为我想自己连接一些东西。
我的计划是写一个工厂或者一个特殊的初始化器。
我试图在扩展中将 Xcode 生成的 Initializer 设为私有,并提供另一个使用此私有的 Initializer。
不幸的是,它没有编译。
extension Item {
private init(context : NSManagedObjectContext?){ // NOT ALLOWED !!
self.init(context: context)
}
static func ItemFactory(i: Int)-> Item{
let moc = PersistenceController.moc
let item = Item(context: moc)
// do some Initialisation
item.i = I
return item
}
}
如何做到这一点?