使用相同CoreData的两个iOS应用程序
用例:使用相同CoreData的两个iOS应用程序,ios,swift,xcode,core-data,Ios,Swift,Xcode,Core Data,用例: 应用程序A具有CoreData模型。它可以读取或写入数据库 应用程序B现在应该能够从相同的CoreData读取数据 已尝试: 对于应用程序A,我有一个自定义类nscustompersistentcainer.swift class NSCustomPersistentContainer : NSPersistentContainer { override open class func defaultDirectoryURL() -> URL { var sto
nscustompersistentcainer.swift
class NSCustomPersistentContainer : NSPersistentContainer {
override open class func defaultDirectoryURL() -> URL {
var storeURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.identifier")
storeURL = storeURL?.appendingPathComponent("MyModel.sqlite")
return storeURL!
}
}
并且,AppDelegate.swift
带有:
lazy var persistentContainer: NSPersistentContainer = {
let container = NSCustomPersistentContainer(name: "MyModel")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
这将创建一个我可以在应用程序a中读取或写入的数据库
现在,我如何从应用程序B访问该数据库?我看到很多关于应用程序和扩展程序之间共享容器的QA,但是我如何处理两个应用程序呢
谢谢您的建议。我删除了我的答案,因为您已经在使用应用程序组。是的,在本例中,扩展和应用与2个应用相同,因为它们各自有一个单独的容器,然后使用共享组容器共享数据。因此,你的第二个应用程序只需要做与第一个应用程序相同的事情:加入同一个组,然后读/写同一个coredataI删除了我的答案,因为你已经在使用应用程序组了。是的,在本例中,扩展和应用与2个应用相同,因为它们各自有一个单独的容器,然后使用共享组容器共享数据。因此,你的第二个应用程序只需要和第一个应用程序做同样的事情:加入同一个组,然后读/写相同的核心数据