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