iOS swift:使用coredata(cloudkit)存储caching

我正在学习使用cloudkit来保存和获取logging,但是我对将caching保存到coredata感到困惑。

例如,我提取了几个logging,并使用tableview显示这个loggingtypes的几个属性(比如A,C和F)。 当我单击一个单元格时,它将显示此logging的详细信息(此logging的所有属性:ABCDEF,但不包括引用属性logging)。 我想知道当我第一次提取logging时,是否应该将这些东西存储到coredata中:“ACF和recordID”? 而当用户点击查看详细信息,我再次使用recordID获取? 关键是我应该使用什么属性types来存储CKRecordID / CKRecord?

我知道我可以将图像存储到本地caching文件(也令人困惑的..),但它不是一个持久存储的权利? 而我之所以不直接存储logging的所有属性,是因为这个logging是一个“邀请”,只有当用户select接受它时,才会下载包括一些引用types属性的所有属性。

任何帮助将是有益的,谢谢!

caching时只应该存档系统字段,如下所示:

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 } 

31:10 WWDC 2015 – Session 715 – iOS,OS X 在这里输入图像说明