【发布时间】:2018-12-05 16:26:10
【问题描述】:
我在 Mac 应用程序中使用 Realm 作为本地缓存,并使用 CloudKit 进行同步。到目前为止,我一直在初始化 CKRecord 对象,如下所示:
let record = CKRecord(recordType: "Workspace", recordID: CKRecordID(recordName: workspace.recordName, zoneID: "..."))
对象workspace 是我本地缓存的对象,它的recordName 匹配CKRecord 的recordName。
我最近了解到encodeSystemFields,并且我需要将记录的元数据存储在我的本地缓存中。但据我所知,使用该元数据初始化对象的唯一方法是:
let coder = NSKeyedUnarchiver(forReadingWith: object.recordData!)
coder.requiresSecureCoding = true
let record = CKRecord(coder: coder)
coder.finishDecoding()
但如果我用coder 初始化我的CKRecord,我如何指定我的recordID 和zoneID?
【问题讨论】:
-
克利夫顿,又是你。当我看到 coder 这个词和关键字 NSKeyedUnarchiver;我想到了 Swift 4.0 中新的 Codable 协议。也许完全不相关,但是……你看看?
标签: cloudkit