Нулевое изображение [NSCFDictionary setObject: forKey:]: попытка вставить нулевое значение (ключ :) - PullRequest
2 голосов
/ 20 декабря 2011

У меня есть это игровое приложение 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:)];

вот тогда я отредактировал call3callback так:

-(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)

я проверяю, что изображение на своем месте ... и я не знаю, почему это ноль?

Я пробовал как на сим, так и на реальном устройстве, и у меня те же ошибки.

что еще мне делать?

1 Ответ

0 голосов
/ 21 декабря 2011

Найден ответ

Я вставил изображение, которое не является настоящим PNG-файлом ...

, поэтому он говорит, что изображение является нулевым, потому что ононе могу найти настоящий png файл

я заменил его настоящим png изображением, и теперь он работает хорошо ..

спасибо всем, кто ответил:)

...