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

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

问题描述:

我是一名AS3游戏开发人员,他试图让自己的头靠近Obj-c。我不确定Obj-c的一件事是如何存储游戏数据。在AS3我只想做这样的事情......如何在Objective c中存储常量数据?

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. 也许使用一个数组,但然后我失去了我认为的标签。

还是有更好的方法吗? XML?我为这个项目使用了Parse,这看起来很棒,而且我想知道是否应该直接使用parse存储我的数据,因此所有数据都可以从数据库中直接访问,也许这将是一件好事开始的事情。话虽如此,我知道将会有我想要硬编码到游戏中的数据,所以有关如何最好地做到这一点的任何想法将不胜感激!

您对初始化可变字典逐项太长的观察结果当然是正确的。事实上,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"]; 
+0

什么时候可以使用新的语法?感谢您的信息,使用可变字典的漫长过程似乎仍然存在很多混乱,我想如果我要这样做,我不妨使用XML或者将数据直接放入Parse中,除非有其他的东西我错过了。 – Phil 2012-07-07 13:41:44

+0

@Phil我不确定苹果何时会将新编译器与他们的Xcode工具集成在一起,但编译器本身已经可用。我想我们应该在Xcode 4发布后立即看到它。 – dasblinkenlight 2012-07-07 13:45:14

+0

@Phil就“漫长的道路”而言,尝试做一个小样本,将其保存到一个文件中,然后手动编辑该文件以添加更多符合相同plist方案的项目。这应该比XML更容易,因为属性列表与'dictionaryWithContentsOfFile:'方法的集成。 – dasblinkenlight 2012-07-07 13:46:44