Я работал с NSPersistentCloudKitContainer, используя пример кода Apple, и настройка очень проста:
lazy var persistentContainer: NSPersistentCloudKitContainer = {
let container = NSPersistentCloudKitContainer(name: "Name")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
Но теперь мне нужно изменить, чтобы использовать базу данных, которая находится в общем контейнере так что его можно использовать с расширением.
Я пытался изменить его на этот код
lazy var persistentContainer: NSPersistentCloudKitContainer = {
let container = NSPersistentCloudKitContainer(name: "Name")
// Create a store description for a CloudKit-backed local store
let storeURL = URL.storeURL(for: "group.com.Name", databaseName: "Name")
let cloudStoreDescription =
NSPersistentStoreDescription(url: storeURL)
cloudStoreDescription.configuration = "Default"
// Set the container options on the cloud store
cloudStoreDescription.cloudKitContainerOptions =
NSPersistentCloudKitContainerOptions(
containerIdentifier: "iCloud.com.Name")
// Update the container's list of store descriptions
container.persistentStoreDescriptions = [cloudStoreDescription]
// Load both stores
container.loadPersistentStores { storeDescription, error in
guard error == nil else {
fatalError("Could not load persistent stores. \(error!)")
}
}
return container
}()
public extension URL {
/// Returns a URL for the given app group and database pointing to the sqlite database.
static func storeURL(for appGroup: String, databaseName: String) -> URL {
guard let fileContainer = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroup) else {
fatalError("Shared file container could not be created.")
}
return fileContainer.appendingPathComponent("\(databaseName).sqlite")
}
}
, но я получил эту ошибку
Fatal error: Could not load persistent stores. Error Domain=NSCocoaErrorDomain Code=134060 "A Core Data error occurred." UserInfo={NSLocalizedFailureReason=Unable to find a configuration named 'Default' in the specified managed object model.}: