首页 > 解决方案 > 防止在 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
  }
}

如何做到这一点?

标签: swiftcore-data

解决方案


推荐阅读