【发布时间】:2021-01-04 18:00:50
【问题描述】:
我一直在寻找将 CloudKit 方案迁移到我最新的本地核心数据模型的合适解决方案。即使推送新的更改,CloudKit 模型也不会更新。我尝试手动更新该方案,但它似乎有问题且非常耗时。 有什么建议吗?
【问题讨论】:
标签: ios swift cloudkit nspersistentcloudkitcontainer
我一直在寻找将 CloudKit 方案迁移到我最新的本地核心数据模型的合适解决方案。即使推送新的更改,CloudKit 模型也不会更新。我尝试手动更新该方案,但它似乎有问题且非常耗时。 有什么建议吗?
【问题讨论】:
标签: ios swift cloudkit nspersistentcloudkitcontainer
在加载持久存储后,您是否尝试过以下操作之一?
试试? container.initializeCloudKitSchema(options: .printSchema)
或
试试? container.initializeCloudKitSchema(options: .dryRun)
你到底改变了什么?如果您仍在开发中,您可以在 CloudKit Dashboard 中重置环境。
【讨论】:
在我的情况下,问题出在一种记录类型上:
在 CloudKit 中,它最初被同步为 Double
我决定将它的类型更改为字符串
对于此类错误,您会收到 Core Data 警告,但由于控制台中有许多此类消息,因此发现它并不容易。
所以我已经删除了iCloud dashboard 中的这条记录(只有当它们没有被移动到生产环境时,你才能删除记录),然后我的新方案(带有新的记录和关系)立即使用标准命令更新:
let options = NSPersistentCloudKitContainerSchemaInitializationOptions()
try? container.initializeCloudKitSchema(options: options)
【讨论】: