1

我需要访问我的主要目标中的持久容器以及应用程序扩展。所以我创建了一个框架来共享代码,并创建了一个 NSPersistentContainer 子类,如下所示:

class PersistentContainer: NSPersistentContainer {
  override class func defaultDirectoryURL() -> URL {
      return FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.xxx.xxx.xxx")!
}
  override init(name: String, managedObjectModel model: NSManagedObjectModel) {
    super.init(name: name, managedObjectModel: model)
  }
}

在 AppDelegate 中,我这样做是为了加载持久存储:

let storeDirectory = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.s2m.freadom")!
let url = storeDirectory.appendingPathComponent("SirikitWIthCoreDataDemo.momd")
print(url)
let mom = NSManagedObjectModel.init(contentsOf: url)
let container = PersistentContainer.init(name: "SirikitWIthCoreDataDemo", managedObjectModel: mom!)

当我尝试加载 NSManagedObjectModel 时它崩溃了。我不明白我在这里做错了什么?

4

0 回答 0