从plist加载图像

时间:2014-05-14 18:25:07

标签: ios sprite-kit

我正在开发一款游戏,每个“舞台”都喜欢加载来自plist的图像。这是我的plist enter image description here

  NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle]pathForResource:
                                                                   @"Levels" ofType:@"plist"]];


  NSDictionary *PicData = config[@"levels"];
    NSString *images = [PicData objectForKey:@"playerIcon"];

但是,我在运行时在最后一行收到错误。不完全确定为什么因为我说spritenode与图像命名图像,你从字典中获得。谢谢你,任何帮助都会被哄骗

2 个答案:

答案 0 :(得分:1)

尝试此操作以获取第一级的图标:

NSString *images = PicData[@"levels"][0][@"playerIcon"];

我从头顶改变了这一点,不确定是否会抛出错误,因为每个访问者默认返回类型为“id”的对象。我还将它更改为新的索引器,使得像这样的代码更具可读性。

答案 1 :(得分:1)

您似乎不知道如何深入挖掘plist文件的正确部分。

// Get the top-level dictionary
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"Levels" ofType:@"plist"]];

现在你需要获得"等级"阵列:

NSArray *levels = config[@"levels"];

现在你需要知道你想要哪个级别。一旦你知道了这个级别,就可以获得该级别的字典:

NSDictionary *levelData = levels[someLevelNumber];

现在你可以获得播放器图标:

NSString *imageName = levleData[@"playerIcon"];