子层目标中的cocos2d CCMenuItemImage:self SIGABRT

时间:2012-02-09 21:23:53

标签: iphone objective-c cocos2d-iphone

我有一个子图层,我正在添加到包含菜单的场景中,它初始化如下:

- (id) init
{
if((self=[super init]))
{
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    CCMenuItemImage* attackButton = [CCMenuItemImage
                                    itemFromNormalImage:@"btnAttack.png" 
                                    selectedImage:@"btnAttack.png"
                                    target: self
                                    selector:@selector(attack)];

    CCMenu* menu = [CCMenu menuWithItems:attackButton,  nil];
    menu.position = ccp(winSize.width-80,winSize.height-140);
    [menu alignItemsHorizontally];
    [self addChild:menu];   

}
return self;
}

除非我将目标更改为'nil',否则会因SIGABRT错误而崩溃。为什么这不起作用,我该如何解决?

2 个答案:

答案 0 :(得分:0)

如果您没有攻击,这会崩溃:在您的课程中定义。 你真的需要一个参数来攻击吗?

检查这是否是您的问题的简单步骤:

1)删除参数,将代码更改为:

target: self
selector:@selector(attack)];

2)添加攻击方法,并检查控制台输出:

-(void)attack
{
   NSLog(@"test");
}

为了更好地了解问题所在,在导航栏中显示断点,单击加号按钮并添加异常断点...所以当应用程序崩溃时(如果仍然存在),您可以看到调用堆栈,看看有什么问题

答案 1 :(得分:0)

当我创建ccmenuitemimage时,我也会发生这种情况。因此,您需要检查您作为选择器呼叫的metdhod。

相关问题