在swift 2中恢复消耗品(硬币)

Posted

技术标签:

【中文标题】在swift 2中恢复消耗品(硬币)【英文标题】:Restoring consumable products (coins) in swift 2 【发布时间】:2016-04-20 17:50:52 【问题描述】:

我正在使用消耗性硬币进行一些测验。我使用 NSUserDefault 在设备上保存硬币及其工作。我也在 qiuz 中使用 CloudKit 处理数据。

如果用户切换设备,如何恢复硬币不麻烦?有一个带有钥匙串的部分解决方案,但它只适用于同一设备。

有没有办法通过我的数据通过 cloudkit 中的仪表板存储硬币?

提前致谢

【问题讨论】:

【参考方案1】:

尝试在 iCloud 中使用键值存储。它的工作方式与 NSUserDefaults 几乎相同,因此您可以完全切换到“键值存储”而不是 NSUserDefaults。

"Designing for Key-Value Data in iCloud" by Apple

除了 NSUserDefaults 的“键值存储”之外,开发人员还可以保存简单的数据类型,但保存的数据可以在启用了 iCloud 的用户设备上使用。

第一步:在应用程序的功能设置中启用“键值存储”

第二步:在应用didFinishLaunchingWithOptions上:实现在NSNotificationCenter订阅NSUbiquitousKeyValueStoreDidChangeExternallyNotification通知。

第三步:向 NSUbiquitousKeyValueStore.defaultStore() 写入和读取数据,方式与使用 NSUserDefaults 相同。

考虑一种解决键值冲突的方法(如果用户同时使用两个或多个设备,或者其中一个设备没有互联网连接等)

此外,键值存储中保存的数据量、键的数量、键名称的长度也有限制...请查看上面指向 Apple 指南的链接。

【讨论】:

以上是关于在swift 2中恢复消耗品(硬币)的主要内容,如果未能解决你的问题,请参考以下文章

检索消费项目的历史记录

在 Swift 中恢复购买

在 Swift 中恢复购买

我怎样才能让用户购买消耗品并给予他们非消耗品作为奖励?

如何恢复消耗品应用内购买?

iOS In-App-Purchase Sandbox 恢复消耗品购买