我有一个子图层,我正在添加到包含菜单的场景中,它初始化如下:
- (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错误而崩溃。为什么这不起作用,我该如何解决?
答案 0 :(得分:0)
如果您没有攻击,这会崩溃:在您的课程中定义。 你真的需要一个参数来攻击吗?
检查这是否是您的问题的简单步骤:
1)删除参数,将代码更改为:
target: self
selector:@selector(attack)];
2)添加攻击方法,并检查控制台输出:
-(void)attack
{
NSLog(@"test");
}
为了更好地了解问题所在,在导航栏中显示断点,单击加号按钮并添加异常断点...所以当应用程序崩溃时(如果仍然存在),您可以看到调用堆栈,看看有什么问题
答案 1 :(得分:0)
当我创建ccmenuitemimage时,我也会发生这种情况。因此,您需要检查您作为选择器呼叫的metdhod。