如果您需要与应用扩展共享核心数据,将容器存储在共享组中会很有用。
问问题
54 次
1 回答
0
您必须获取容器的描述,然后设置 URL:
let momdName = "MyModel"
guard let modelURL = Bundle(for: type(of: self)).url(forResource: momdName, withExtension:"momd") else {
fatalError("Error loading model from bundle")
}
guard let mom = NSManagedObjectModel(contentsOf: modelURL) else {
fatalError("Error initializing mom from: \(modelURL)")
}
guard let containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.my-group")?.appendingPathComponent("My.sqlite") else {
fatalError("Cannot get shared group URL")
}
let container = NSPersistentCloudKitContainer(name: momdName, managedObjectModel: mom)
guard let description = container.persistentStoreDescriptions.first else {
fatalError("###\(#function): Failed to retrieve a persistent store description.")
}
description.url = containerURL
container.loadPersistentStores() { (storeDescription, error) in
if let error = error as NSError? {
// ...
}
}
于 2020-04-08T07:00:56.860 回答