我正在开发一款游戏,每个“舞台”都喜欢加载来自plist的图像。这是我的plist
NSDictionary *config=[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle]pathForResource:
@"Levels" ofType:@"plist"]];
NSDictionary *PicData = config[@"levels"];
NSString *images = [PicData objectForKey:@"playerIcon"];
但是,我在运行时在最后一行收到错误。不完全确定为什么因为我说spritenode与图像命名图像,你从字典中获得。谢谢你,任何帮助都会被哄骗
答案 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"];