将NSArray存储在持久(用户)数据中

时间:2014-11-13 15:44:07

标签: ios objective-c nsarray sprite-kit persistence

我需要保持库存数据的持久性(每次关闭并重新打开应用程序时都不会重置)。我目前使用GameState单例类来存储我的高分,玩家级别等。到目前为止,这些都是整数,并且很容易使用。

我遵循了关于GameState单例类的附加教程:http://www.raywenderlich.com/63578/make-game-like-mega-jump-spritekit-part-22

我现在需要存储我的库存数组,这是一个自定义的SKSpriteNode子类。

我可以将这个数组存储在我的单例类中吗?我需要用什么语法来处理它?<​​/ p>

为了保存阵列,我需要设置编码/解码吗?我看到这是一种不同的方法,看起来比单身类更复杂。

我精通SQL,但如果我可以直接检索数组,就像它本地存储一样,我宁愿不使用SQLlite。

1 个答案:

答案 0 :(得分:1)

NSUserDefaults了解NSDataNSStringNSNumberNSDateNSArrayNSDictionary,因此最简单事情是存储您需要保存在这些数据类型的某些组合中的数据。如果您不能这样做,那么您需要在自定义类中实现NSCoding,以便将其实例存档为NSData个对象,这并不像听起来像是:http://sam.roon.io/archiving-objective-c-objects-with-nscoding

就个人而言,我首先将您的模型从您的视图中分离出来(使用&#34;数据&#34;部分Sprite Kit对象并将它们放入单独的,仅限数据的类或结构中)。这应该可以更容易地推断出需要序列化的内容。