如何在Objective c中存储常量数据?

时间:2012-07-07 11:49:06

标签: objective-c actionscript-3 data-structures nsmutabledictionary parse-platform

我是一名AS3游戏开发者,正试图绕过Obj-c。 Obj-c我不确定的一件事是如何存储游戏数据。在AS3中我会做这样的事情......

static var playerData:Object = {position:{startX:200, startY:200}};

我可以像这样轻松访问...

var x1:Number = playerData['Position']['startX'];

或者,如果我有多行数据,我甚至可以做这样的事情......

myData["runOnFrame" + currentImageIndex]

我可以访问对象runOnFrame1,runOnFrame2等等。

我昨天问了一个关于如何设置上面的初始数据结构的问题,并得到了一些答案......

How would I create this AS3 data structure in objective c?

但是,使用可变字典设置基本游戏数据的方式似乎有点长,至少可以说。

所以到了这个问题(最后),考虑到我通常在AS3中设置的方式,在Obj-c中设置我的游戏数据的最佳方式是什么?看起来我的选择是......

  1. 在上面的链接中使用可变字典方法

  2. 设置一个类,将数据保存为基本变量,但后来我不是     确定如何动态访问该类中的变量(就像我的     runOnFrame示例)

  3. 也许使用数组,但我认为我失去了标签。
  4. 还是有更好的方法吗? XML?我正在使用Parse进行这个项目,看起来很棒,而且我想知道我是否应该直接使用parse存储我的数据,所以所有数据都可以从一开始就从数据库中访问,也许这样会很好开始的事情。话虽如此,我知道我希望在游戏中加入硬编码的数据,所以任何关于如何最好地做到这一点的想法都将受到赞赏!

1 个答案:

答案 0 :(得分:1)

您对逐项初始化可变字典的观察结果肯定是正确的。事实上,the upcoming version of Objective C will provide better syntax for this task

NSDictionary *playerData = @{ @"position" : @{@"startX":@200, @"startY":@200} };

然而,在这个漂亮的语法可用之前你可以做一些事情:你可以做很长的准备字典,将它作为属性列表保存在文件中,并替换长初始化代码只需阅读plist,this answer to your previous question建议:

playerData = [NSMutableDictionary dictionaryWithContentsOfFile:@"playerdata.plst"];