Нераспознанный селектор, когда я нажимаю на CCMenuItemImage
Я пытаюсь загрузить меню "Пуск" для игры, и я добавил кнопку воспроизведения, используя CCMenuItemImage. Все загружается просто отлично. Однако, когда я пытаюсь нажать на кнопку воспроизведения, я получаю это сообщение об ошибке.
013-08-18 13: 38: 46.091 PeevedPenguins-iOS [5169: c07] * Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: '-[StartMenuLayer ]: нераспознанный селектор, отправленный экземпляру 0x9e5b400'
Я не знаю, что я делаю неправильно, так как мой селектор определен и все. Пожалуйста, помогите мне? Я дергал себя за волосы, пытаясь понять, почему Xcode сделает это
@interface StartMenuLayer ()
@end
@implementation StartMenuLayer
-(id) init
{
if ((self = [super init]))
{
CCMenu *myMenu = [CCMenu menuWithItems: nil];
CCMenuItemImage *menuBackground = [CCMenuItemImage itemWithNormalImage:@"menu-background-hd.png" selectedImage:@"menu-background-hd.png" target:self selector:nil];
[myMenu addChild:menuBackground];
CCMenuItemImage *menuPlayButton = [CCMenuItemImage itemWithNormalImage:@"button-hd.png" selectedImage:@"button-hd.png" target:self selector:@selector(playGame:)];
menuPlayButton.position = ccp(0, 0);
[myMenu addChild:menuPlayButton];
CCMenuItemImage * menuItem3 = [CCMenuItemImage itemWithNormalImage:@"catapult-hd.png"
selectedImage: @"catapult-hd.png"
target:self
selector:@selector(doSomethingThree:)];
[myMenu addChild: menuItem3];
menuPlayButton.position = ccp(0,-83.5);
[self addChild:myMenu];
}
return self;
}
-(void) playGame:(CCMenuItem *)sender
{
// [[CCDirector sharedDirector] replaceScene: (CCScene*)[[GameLayer alloc] init]];
NSLog(@"Play the game!");
}
- (void) doSomethingThree:(CCMenuItem *)sender
{
NSLog(@"The third menu was called");
}
@end
1 ответ
Решение
Вы настроили один из ваших пунктов меню с nil
селектор [разрывы строк добавлены для ясности]:
CCMenuItemImage *menuBackground = [CCMenuItemImage
itemWithNormalImage:@"menu-background-hd.png"
selectedImage:@"menu-background-hd.png"
target:self
selector:nil];