我正在用Spritekit开发一款游戏,现在我需要跟踪用户的高分。有各种不同的存储方法,最简单的方法是NSUserDefaults,但推荐用于首选项。用钥匙扣节省分数
然而,我发现这个钥匙扣包装趋向于节约串用钥匙:
https://github.com/jrendel/SwiftKeychainWrapper
你觉得这是很好用吗?我的想法是在保存它之前将得分(Integer)转换为一个字符串,并在检索高分时,将其从String转换为Int。你认为这是一个好主意吗?
我正在用Spritekit开发一款游戏,现在我需要跟踪用户的高分。有各种不同的存储方法,最简单的方法是NSUserDefaults,但推荐用于首选项。用钥匙扣节省分数
然而,我发现这个钥匙扣包装趋向于节约串用钥匙:
https://github.com/jrendel/SwiftKeychainWrapper
你觉得这是很好用吗?我的想法是在保存它之前将得分(Integer)转换为一个字符串,并在检索高分时,将其从String转换为Int。你认为这是一个好主意吗?
我可以看到的关键链的主要优点是,当应用程序被删除且不能轻易更改时,条目仍然存在。 UserDefaults将与您的应用Id绑定,并在应用删除时丢失:除非您使用了全局域。
您可以使用CloudKit键/值存储实现跨设备高分,将数据存储在云中。这将是更多的工作,你需要添加冲突解决。
根据你高分的认真程度,你应该考虑与Game Center整合?理想的情况下,如果你想得到高分等,坚持跨越多个设备。
什么是可以/应当使用钥匙链作为存储方法时要存储的数据的优选量?谢谢! – Whirlwind 2015-02-09 11:00:16
我想说你应该只用它来输入密码,虚拟硬币,高分或你想分享的小信息(icloud keychain),并防止通过其他机制轻松访问。此外,对于重新安装应用程序而不是应用程序重新启动的情况,您可能需要使用这些项目。任何更大的应该进入文件系统恕我直言 – 2015-02-09 11:44:46
感谢您的反应罗里。是的,我将整合Gamecenter,但我将首先在本地保存高分,然后再与Gamecenter同步。不是这样吗?因为如果没有网络连接,应用程序必须将其存储在本地。 – ah786 2015-02-09 14:23:10