Ozz*_*hen 2 core-data ios swift cloudkit
我正在学习使用cloudkit来保存和获取记录,但我对将缓存保存到coredata感到困惑.
例如,我使用tableview获取了几条记录并显示了这种记录类型的一些属性(比如A,C和F).当我单击一个单元格时,它将显示此记录的详细信息(此记录的所有属性:ABCDEF,但不包括引用属性记录).当我第一次拿到记录时,我想知道是否应将这些东西存入coredata:"ACF和recordID"?当用户点击查看详细信息时,我使用recordID再次获取?关键是我应该使用什么属性类型来存储CKRecordID/CKRecord?
我知道我可以将像image这样的东西存储到本地缓存文件中(也令人困惑..),但它不是持久存储吗?而且我没有直接存储记录的所有属性的原因是因为这个记录是一个"邀请",只有当用户选择接受它时,它才会下载所有属性,包括一些引用类型属性.
任何帮助都会有所帮助,谢谢!
Ben*_*Ben 10
您应该在缓存时仅存档系统字段,如下所示:
private func dataFromRecord(record:CKRecord) -> NSData{
let archivedData = NSMutableData()
let archiver = NSKeyedArchiver(forWritingWithMutableData: archivedData)
archiver.requiresSecureCoding = true
record.encodeSystemFieldsWithCoder(archiver)
archiver.finishEncoding()
return archivedData
}
private func recordFromData(archivedData:NSData) -> CKRecord?{
let unarchiver = NSKeyedUnarchiver(forReadingWithData: archivedData)
unarchiver.requiresSecureCoding = true
let unarchivedRecord = CKRecord(coder: unarchiver)
return unarchivedRecord
}
Run Code Online (Sandbox Code Playgroud)
31:10 WWDC 2015 - Session 715 - iOS,OS X.
