【问题标题】:Unrecognized Selector when I click on CCMenuItemImage单击 CCMenuItemImage 时无法识别的选择器
【发布时间】:2013-08-19 04:51:11
【问题描述】:

我正在尝试加载游戏的开始菜单,并且我使用 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

【问题讨论】:

    标签: objective-c selector ccmenuitem ccmenu


    【解决方案1】:

    您使用nil 选择器配置了一个菜单项[为清楚起见添加了换行符]:

    CCMenuItemImage *menuBackground = [CCMenuItemImage
                                      itemWithNormalImage:@"menu-background-hd.png"
                                      selectedImage:@"menu-background-hd.png" 
                                      target:self
                                      selector:nil];
    

    【讨论】:

    • 谢谢你!现在我的程序不会崩溃。但是现在你知道如何在菜单背景的顶部添加播放按钮和第三个菜单项了吗?现在,当我单击播放按钮/第三个菜单项时,程序认为我正在单击菜单背景:[
    • 尝试为此提交一个单独的问题(如果您还没有)——它与您的原始问题并不真正相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多