我正在学习使用cloudkit来保存和提取记录,但我对将缓存保存到coredata感到困惑。
例如,我提取了几个记录,并使用tableview显示了这种记录类型(比如A,C和F)的一些属性。当我点击一个单元格时,它会显示此记录的详细信息(此记录的所有属性:A B C D E F,但不包括引用属性记录)。 我想知道当我第一次提取记录时,是否应该将这些东西存储到coredata中:“A C F和recordID”?当用户点击查看详细信息时,我再次使用recordID获取?关键是我应该使用什么属性类型来存储CKRecordID/CKRecord?
我知道我可以将图像存储到本地缓存文件(也令人困惑的..),但它不是一个持久存储的权利?我之所以不直接存储记录的所有属性是因为这个记录是一个“邀请”,只有当用户选择接受它时,它才会下载包括一些引用类型属性的所有属性。
任何帮助将有所帮助,谢谢!iOS swift:使用coredata存储缓存(cloudkit)
1
A
回答
9
你应该只存档系统字段时cacheing,像这样:
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
}
相关问题
- 1. PromiseKit和CloudKit保存(使用Swift)
- 2. 使用coredata存储/缓存非标准数据类型
- 3. CoreData不存储Swift 4 Xcode 9
- 4. 在CoreData中存储NSArray的问题[Swift]
- 5. 使用CloudKit公共存储来存储消息 - 安全问题
- 6. 存储概念iOS - Swift
- 7. 可以使用本地存储来保存iOS上的缓存
- 8. CoreData不存储在多个iOS设备
- 9. 如何在Swift中使用CoreData存储自定义对象?
- 10. iOS - 缓存图像和管理存储
- 11. iOS上的存储和缓存限制
- 12. 将CoreData保存到iCloud(Swift)
- 13. 哪里使存储缓存?
- 14. iOS Swift Cloudkit performQuery函数
- 15. Swift 3缓存
- 16. 使用CoreData存储JSON字符串
- 17. 是否可以缓存视频? IOS - Swift
- 18. 缓存使用本地存储
- 19. 使用TYPO3缓存来存储值
- 20. 使用缓存来存储位图
- 21. 如何使用存储过程缓存?
- 22. CoreData到CloudKit迁移
- 23. 在CoreData中存储objectID
- 24. 将CMTime存储在CoreData中?
- 25. 在CoreData中存储UIColor
- 26. 在iOS中存储大图片swift
- 27. iOS Swift 3将值存储到领域
- 28. Swift默认参数使用缓存值
- 29. 如何使用HanekeSwift Swift删除缓存?
- 30. NSPredicate找不到CoreData存储中存在的记录使用MagicalRecord
,如果我们只是缓存系统文件,如何在设备之间共享数据? Thx – 2016-07-06 08:58:29
如果您想了解更多信息(如果您不想观看所有内容,可以在分钟31:10开始),我真的鼓励您检查我的答案中链接的视频,但一般来说,'ChangeTag '字段将决定您是否需要将您的本地数据与云版本同步... – Ben 2016-08-31 23:57:20