因此,我试图仅将我的某些模型与iCloud同步,而其他模型则在默认设备中保存在本地。我有一个问题的世界,所以在我开始在干草堆中寻找针头之前。我想问这个论坛,我的方法是应该根据需要起作用的方法,还是我的代码显然是为什么事情不起作用?我所有的模型都有默认值和需要的关系。 iCloud正在工作,但是当我尝试排除某些模型时,我的问题就会出现。因此,我想同步“ ModelsForCloudSyning”,但不是“ ModelnotForCloudSyncing”
var avoidCloudSyncModelContainer : ModelContainer = {
let modelNotForCloudSyncing = Schema([NoCloudSyncModel.self])
let modelConfigForNoCloudSync = ModelConfiguration(schema: modelNotForCloudSyncing, cloudKitDatabase: .none)
let modelsForCloudSyncing = Schema([CloudSyncModelA.self, CloudSyncModelB.self, CloudSyncModelC.self])
let modelConfigForCloudSync = ModelConfiguration(schema: modelsForCloudSyncing, cloudKitDatabase: .automatic)
do {
return try ModelContainer(for: NoCloudSyncModel.self, CloudSyncModelA.self, CloudSyncModelB.self, CloudSyncModelC.self, configurations: modelConfigForNoCloudSync, modelConfigForCloudSync)
}
catch { fatalError("Could not create ModelContainer: \(error)") }
}()
...
{
ContentView()
}.modelContainer(avoidCloudSyncModelContainer)
let globalSchema = Schema(CurrentPersistenceScheme.models)
let localSchema = Schema(CurrentPersistenceScheme.localModels)
let cloudSchema = Schema(CurrentPersistenceScheme.cloudModels)
// Make sure to add a name to your configuration, e.g. 'cloud' and 'local'
let cloudConfig = ModelConfiguration("cloud", schema: cloudSchema, cloudKitDatabase: .private(Constants.Storage.iCloudContainerID))
let localConfig = ModelConfiguration("local", schema: localSchema, cloudKitDatabase: .none)
do {
return try ModelContainer(for: globalSchema, configurations: [cloudConfig, localConfig])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}