Image is null [NSCFDictionary setObject:forKey:]:尝试插入空值(key:



我下载了这个游戏应用cocos2d,它是一个开源游戏…

我正在尝试使用gamecenter插入在线排行榜。然而

我插入的图像似乎会使游戏崩溃。

我已经把它插入到这里了:

    MenuItem *button1 = [MenuItemImage itemFromNormalImage:@"playAgainButton.png" selectedImage:@"playAgainButton.png" target:self selector:@selector(button1Callback:)];
    MenuItem *button2 = [MenuItemImage itemFromNormalImage:@"changePlayerButton.png" selectedImage:@"changePlayerButton.png" target:self selector:@selector(button2Callback:)];
    MenuItem *button3 = [MenuItemImage itemFromNormalImage:@"blank1.png" selectedImage:@"blank1.png" target:self selector:@selector(button3Callback:)];
    Menu *menu = [Menu menuWithItems: button1, button2, button3, nil];
    [menu alignItemsVerticallyWithPadding:9];
    menu.position = ccp(160,48);
    [self addChild:menu];
    return self;
}

MenuItem *button3 = [MenuItemImage itemFromNormalImage:@"blank1.png" selectedImage:@"blank1.png" target:self selector:@selector(button3Callback:)];

就是这个,然后我像这样编辑button3callback:

-(void)button3Callback:(id)sender
{
    GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
    if (leaderboardRequest != nil)
    {
        NSLog(@"leaderboardrequest is not equal nil");
        leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
        leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
        leaderboardRequest.range = NSMakeRange(1,10);
        [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
            if (error != nil)
            {
                // handle the error.
                NSLog(@"ERROR : %@",[error localizedDescription]);
            }
            if (scores != nil)
            {
                // process the score information.
                for (id thisScore in scores) {
                    NSLog(@"Score %@  ", thisScore);
                }
            }
            else {
                NSLog(@"Scores == nil");
            }
        }];
    }
}

现在我有这个错误:

2011-12-20 11:29:40.984 tweejump[2936:707] Image is Null
2011-12-20 11:29:40.988 tweejump[2936:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: blank1.png)'
*** First throw call stack:
(0x31cca8bf 0x31a3a1e5 0x31cca7b9 0x31cca7db 0x31c376bb 0x35dc9 0x2f63f 0x2f5c5 0x25385 0x252f9 0x2522f 0x43cc7 0x429bb 0x4235f 0x2e95f 0x2f515 0xf26f 0x358db61d 0x31c9ea63 0x31c9e6c9 0x31c9d29f 0x31c204dd 0x31c203a5 0x31d2cfed 0x327b0743 0x2873 0x282c)

我确保它是在它的适当位置的图像…我不知道为什么是nil?

我在sim卡和真实设备上都试过了,我有同样的错误。

找到了答案

我插入了一个图像,不是一个真正的PNG文件…

这就是为什么它说图像是空的,因为它找不到一个真正的PNG文件

我已经用一个真正的PNG图像替换了它,现在它工作得很好。

感谢所有回复的人:)

最新更新