我想阻止为 CoreData ManagedObject 使用标准的 Xcode 生成的初始化程序,因为我想自己连接一些东西。
我的计划是编写一个工厂或一个特殊的初始化程序。
我尝试在扩展中将 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
}
}
如何实现?