NSCoding 到 CKRecord
Posted
技术标签:
【中文标题】NSCoding 到 CKRecord【英文标题】:NSCoding to CKRecord 【发布时间】:2016-11-10 14:50:28 【问题描述】:我有一个自定义类,我用它制作了一个(swift-y)结构 NSCodable。现在我想将其转换为 CKRecord 以使用 CloudKit。尽管我在对结构进行编码时设置了“键值”对,但据我了解,该结构已转换为 NSData 并且您无法将其转换为字典(或另一个键值对象)。所以我觉得这不是要走的路。
有没有办法直接进行这种转换?或者中间有一个步骤(例如将 Data 转换为 [String: String]- 字典)?
【问题讨论】:
您可以将NSData
存储在CKRecord 中。
但这会导致 CKRecord 中出现数据块。我想要一种方便的转换方式。
【参考方案1】:
NSCoding 仅用于往返同一班级。相反,在您的自定义类上编写一个 toServerDictionary 方法,仅包括您要发送到 CloudKit 的属性,然后使用结果在 CKRecord 上调用 setValuesForKeys。
您可能会发现有些属性需要为特定类型,在这种情况下,最好将您的方法设置为 toServerRecord 并创建一个 CKRecord 并将其返回。你也可以有一个 updateWithServerRecord 来设置你收到的任何东西。
【讨论】:
以上是关于NSCoding 到 CKRecord的主要内容,如果未能解决你的问题,请参考以下文章