2016-11-10 69 views
1

我有一个自定义类,我做了(swift-y)结构NSCodable。现在我想将其转换为CKRecord以使用CloudKit。尽管我在编码结构时设置了“键值”对,但我了解该结构已转换为NSData,并且不能将其转换为字典(或其他键值对象)。所以我觉得这不是要走的路。NSCoding CKRecord

有没有办法直接进行此转换?或者在两者之间(例如将数据转换为[String:String] - 字典)?

+0

您可以将'NSData'存储在CKRecord中。 – rmaddy

+0

但是这会导致CKRecord中的数据blob。我想有一个方便的方式来转换它。 –

回答

0

NSCoding仅适用于同一班级。相反,在您的自定义类上编写toServerDictionary方法(仅包括要发送到CloudKit的属性),然后使用结果在CKRecord上调用setValuesForKeys

您可能会发现有些属性需要是特定类型,在这种情况下,最好将您的方法创建为ServerRecord并创建CKRecord并将其返回。你也可以有一个updateWithServerRecord来设置你收到的任何东西。