Objective c 为什么从plist读取数据时第二个值(Null)为空?

Objective c 为什么从plist读取数据时第二个值(Null)为空?,objective-c,cocos2d-iphone,plist,kobold2d,nsenumerator,Objective C,Cocos2d Iphone,Plist,Kobold2d,Nsenumerator,这个问题来自makegameswith.us网站和他们恼怒的企鹅项目。我试图修改它以从plist而不是GameLayer.mm读取级别数据,第一个精灵数据按预期读取,第二次通过while循环返回精灵名称(Null)。我看过plist,两个精灵应该有相同的文件名“tallblock” 以下是相关的代码片段: CCLOG(@"About to load level data."); // Load Level Data and Draw Level Sprits NSString

这个问题来自makegameswith.us网站和他们恼怒的企鹅项目。我试图修改它以从plist而不是GameLayer.mm读取级别数据,第一个精灵数据按预期读取,第二次通过while循环返回精灵名称(Null)。我看过plist,两个精灵应该有相同的文件名“tallblock”

以下是相关的代码片段:

CCLOG(@"About to load level data.");

    // Load Level Data and Draw Level Sprits
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Level1" ofType:@"plist"];
    NSDictionary *level = [NSDictionary dictionaryWithContentsOfFile:path];
    NSArray *levelBlocks = [level objectForKey:@"Blocks"]; // Capitalization matters

    NSEnumerator *enumerator = [levelBlocks objectEnumerator];
    id object;
    NSString *spriteName;
    NSString *spriteFile;
    NSNumber *xPos;
    NSNumber *yPos;

    // One of my sprite names is invalid...
    while (object = [enumerator nextObject])
    {
        spriteName = [object objectForKey: @"spriteName"];
        spriteFile = [spriteName stringByAppendingString:@".png"];

        CCLOG(@"Sprite File is : %@", spriteFile); // Second sprite doesn't load is null...
        sprite = [CCSprite spriteWithFile: spriteFile];
        xPos = [object objectForKey: @"x"];
        yPos = [object objectForKey: @"y"];
        sprite.position = CGPointMake([xPos floatValue], [yPos floatValue]);
        [blocks addObject:sprite];
        [self addChild: sprite
                     z: 7];
    }

    CCLOG(@"Finished Loading Level Data.");
我提出了这个问题,但没有收到任何建议。我已经在调试器中对代码进行了多次检查,但我不明白为什么它在第1次过程中找到了tallblocks,而在第2次过程中却没有

我拍摄了plist文件的截图。知道为什么第二个精灵的代码失败了吗


第1项的spriteName中缺少一个R…

您的第二个数组条目的键是“spiteName”,而不是“spriteName”

该死!我查看的是文件名,而不是密钥名。我花了很多时间在这上面,这是一个愚蠢的“r”。。。