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 从云端同步到本地的 CoreData 托管对象