我正在开发一款新的iOS游戏,并希望通过iCloud在线保存进度。节省是相当频繁的,但它们大多是双打和整数,分数,解锁和NSDate数字。
由于互联网需要玩游戏,我想只在线保存游戏,而不是本地保存。当应用程序打开时,它应该从服务器下载已保存的游戏,一旦完成,启动游戏。
在线货币将通过IAP销售,因此我希望确保即使游戏被删除并重新安装也不会丢失进度,当然,也可以在同一用户的多个设备上使用。
最好的方法是什么?是否可以通过iCloud?键值似乎很乱,因为它不能与iCloud快速同步。那么核心数据呢?
我不是在寻找要复制和粘贴的代码,但是我想创建一个讨论来找出这种情况的最佳解决方案,如果它是iCloud,设置我自己的服务器等等。我到处都看人们说不同的事情,但到目前为止,我找不到最好的解决方案。
谢谢!
答案 0 :(得分:5)
在iOS 8中,您可能需要查看GKSavedGame
- 它管理与Game Center播放器关联的已保存游戏并通过iCloud同步它们。
否则,直接使用iCloud API听起来对您的用例来说是合理的。如果您编写一组小的,定义明确的值,那么无处不在的键值存储非常容易使用。如果您的保存游戏更复杂,请写出属性列表或使用NSKeyedArchiver
对自定义对象进行编码,然后使用NSFileManager
API通过iCloud同步生成的文件。
也可以使用核心数据或CloudKit,但听起来比你的游戏需要更复杂。