我正在建立一些使用耗材的测验。我使用NSUserDefault在设备上保存硬币及其工作。我也在使用CloudKit来获取qiuz中的数据。
如果用户切换设备,如何恢复硬币没有问题?有一个部分解决方案与钥匙串,但它只适用于同一设备。
有没有办法通过我的数据在cloudkit中通过仪表板存储硬币?
提前谢谢
答案 0 :(得分:1)
尝试在iCloud中使用键值存储。它的工作方式与NSUserDefaults几乎相同,因此您可以完全切换到键值存储'而不是NSUserDefaults。
"Designing for Key-Value Data in iCloud" by Apple
以及NSUserDefaults'键值存储'允许开发人员保存简单数据类型,但已启用iCloud的用户设备可以保存已保存的数据。
第二步:在应用程序上执行didFinishLaunchingWithOptions:在NSNotificationCenter上实现对NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知的订阅。
第三步:以与NSUserDefaults相同的方式向NSUbiquitousKeyValueStore.defaultStore()写入和读取数据。
考虑一种解决键值冲突的方法(如果用户正在使用两个或更多设备,或其中一个设备没有互联网连接等)
此外,键值存储中保存的数据量,键数,键长度等都有限制。名称...请查看Apple指南的上述链接。