CloudKit 和 CoreData 默认值

Posted

技术标签:

【中文标题】CloudKit 和 CoreData 默认值【英文标题】:CloudKit and CoreData Default Values 【发布时间】:2019-06-13 03:31:12 【问题描述】:

我正在使用NSPersistentCloudKitContainer 设置核心数据,以便我的数据将自动与 CloudKit 集成。我遇到的问题是我的实体中不再有可选属性。我所有的可选属性都会产生编译器错误

[entity].[attribute] 必须有一个默认值

这是一个错误吗?这个问题有什么好的解决方法吗?

【问题讨论】:

我也不知道是bug还是功能。但我想现在这只是 CoreData 的自动同步带来的限制之一(除了苹果在这里提到的那些:developer.apple.com/documentation/coredata/…)。可能需要默认值来初始化 CloudKit 模式。一个好的解决方法是提供默认值。 ;) 你发现了吗? 【参考方案1】:

它似乎已在 Xcode 11 beta 3 中修复。

【讨论】:

我在使用 xCode 11.0 beta 6 时遇到了同样的问题。可以修复吗?【参考方案2】:

“解决方案”只是让所有链接都是可选的。在 XCode 11 GM 上这仍然是一样的,不要认为它在任何 xcode 测试版中都是“固定的”。

我认为原因是它同步到 CloudKit 的方式,他们希望完全控制实体类型的同步,因此链接可能会在短时间内断开。

【讨论】:

以上是关于CloudKit 和 CoreData 默认值的主要内容,如果未能解决你的问题,请参考以下文章

App 如何根据需要动态为 CoreData 开启 CloudKit 云同步功能

App 如何根据需要动态为 CoreData 开启 CloudKit 云同步功能

禁用 CloudKit 调试日志

如何更灵活的处理 CloudKit 从云端同步到本地的 CoreData 托管对象

如何更灵活的处理 CloudKit 从云端同步到本地的 CoreData 托管对象

管理多个 Store cloudkit 容器