iOS アプリの共有拡張機能を構築しています。アプリ グループを使用して、アプリと拡張機能の間で CoreData を共有しています。現在、拡張機能にデータをロードできますが、拡張機能に追加/保存しようとすると、アプリがクラッシュし、エラー メッセージが表示されます: Unresolved error Foundation._GenericObjCError.nilError, [:]
.
class CustomPersistentContainer: NSPersistentCloudKitContainer {
override open class func defaultDirectoryURL() -> URL {
var storeURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.gn.papyrus")
storeURL = storeURL?.appendingPathComponent("Papyrus.sqlite")
return storeURL!
}
}
struct PersistenceController {
let container: NSPersistentCloudKitContainer
init(inMemory: Bool = false) {
container = CustomPersistentContainer(name: "Papyrus")
if inMemory {
container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null")
}
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
container.viewContext.automaticallyMergesChangesFromParent = true
}
}
データを保存しています....
private func addToRoot() {
let newItem = Node(context: viewContext)
newItem.text = sharedText
newItem.dateAdded = Date()
do {
try viewContext.save()
} catch {
let nsError = error as NSError
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
}
}