如何在游戏中存储用户数据? (swift,spritekit)

比方说,我有一个游戏,一开始用户可以select一些东西,比如名字,性别等等,这会影响游戏的很多方面,比如用来渲染用户的精灵,文本显示。

所以每次我离开游戏的一个区域并进入一个新的区域时,我应该根据用户数据计算出 – 使用什么样的精灵和准备什么样的文字。 我应该为用户的数据创build一个字典的单独的类,然后每当我进入一个新的区域时调用它? 谢谢你。

有几种方法可以做到这一点。

我更喜欢使用NSCoding的单例GameData类来容纳需要永久保存的所有属性(数组,字典等)。

我喜欢这样,因为它使代码更具可读性,而且还具有可以从项目的任何位置访问属性的优点。 这样,包含icloud键值存储也很容易。

你可以阅读我回答的这两个问题,看看这个问题

SpriteKit:为什么要等一分钟才能更新分数? (迅速)

有没有比用NSCoder编码和解码所有东西更好的方式来保存自定义类到NSUserDefaults?

这里还有一些很好的教程

https://www.hackingwithswift.com/read/12/3/fixing-project-10-nscoding

要安全地保存数据,您可以/应该使用钥匙串。 阅读更多关于它检查出这个问题。

iOS 8,9上的NSUserDefaults有多安全?