生成具有 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 的更改太慢

CoreData:获取具有给定属性和给定关系的对象?

CoreData - 如何创建 fetchrequest 以获取随机属性值数组

从CoreData获取给定属性具有相同值的对象?

CoreData如何实现托管对象的“计算”属性字段

具有自定义类类型的 Swift CoreData 保存属性