生成具有 CoreData 等属性的 CKRecord 类
Posted
技术标签:
【中文标题】生成具有 CoreData 等属性的 CKRecord 类【英文标题】:Generate CKRecord classes with properties like CoreData 【发布时间】:2019-10-30 16:12:34 【问题描述】:我正在将一个应用程序从 CoreData 迁移到 CloudKit。我讨厌使用基于字符串的键值编码,因为它会阻止自动完成并使重构更加困难。使用 CoreData,我们可以自动生成具有属性的类,以便数据模型中的更改自动反映在生成的类及其属性中。 CloudKit 是否有类似的流程?
【问题讨论】:
不,CloudKit 没有类似的过程。为此,您必须编写自己的类。 谢谢@maddy。为此,我实际上一直在研究我自己的类结构,这至少意味着我可以使用属性而不是 KVC 来设置和访问这些值。 CloudKit 看起来很神奇,因为它需要很少的代码来使用它(与 CoreData 的混乱相比),但不得不使用 KVC 感觉就像退了一步 【参考方案1】:ios 13 中的新 NSPersistentCloudKitContainer
连接了 CoreData 和 CloudKit。这意味着本地存储保留在 CoreData 中,并且可以使用 CoreData 自动生成的类和属性来访问值。 NSPersistentCloudKitContainer
使用 CloudKit 处理接口,因此不需要 KVC。
【讨论】:
以上是关于生成具有 CoreData 等属性的 CKRecord 类的主要内容,如果未能解决你的问题,请参考以下文章
iPhone CoreData 属性:对 managedObjects 的更改太慢