我正在开发一款使用Spritekit的游戏,现在我必须跟踪用户的高分。有各种不同的存储方法,最简单的方法是NSUserDefaults,但它建议使用偏好。
然而,我发现这个Keychain包装器倾向于使用密钥保存字符串:
https://github.com/jrendel/SwiftKeychainWrapper
你觉得使用它好吗?我的想法是在保存之前将得分(整数)转换为字符串,并在检索高分时,我将它从String转换回Int。你认为这是个好主意吗?
答案 0 :(得分:1)
我可以看到密钥链的主要优点是,当删除应用程序并且无法轻易更改时,条目仍然存在。 UserDefaults将与您的应用ID相关联,并在应用删除时丢失:除非您使用了全局域名。
您可以使用CloudKit键/值存储来实现跨设备高分,将数据存储在云中。这将是更多工作,您需要添加冲突解决方案。
根据您获得高分的严重程度,您应该考虑与Game Center进行整合?如果您希望在多个设备上保持高分等,这是理想的选择。