cocos2d-iphone 1.0.1
。我收到了两个SIGSEV
崩溃报告,分为两部分:
CCMenu.m :
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
NSAssert(state_ == kCCMenuStateTrackingTouch, @"[Menu ccTouchEnded] -- invalid state");
[selectedItem_ unselected];
[selectedItem_ activate]; // <--- Here
state_ = kCCMenuStateWaiting;
}
CCMenuItem.m :
-(void) activate {
if(isEnabled_)
[invocation_ invoke]; // <--- Here
}
我有几个回溯,但它们没有提供有关我的代码的有用见解 - 它们都是指cocos2d,CoreFoundation或UIKit库。样本一:
0 MyGame 0x002609f0 testflight_backtrace
1 MyGame 0x002602d8 TFSignalHandler
2 libsystem_platform.dylib 0x3bdfa062 _sigtramp
3 CoreFoundation 0x312e4da2 -[NSInvocation invoke]
4 MyGame 0x000ee9f2 -[CCMenuItem activate] in CCMenuItem.m on Line 128
5 MyGame 0x000ed9be -[CCMenu ccTouchEnded:withEvent:] in CCMenu.m on Line 201
6 MyGame 0x0010e26a -[CCTouchDispatcher touches:withEvent:withTouchType:] in CCTouchDispatcher.m on Line 268
7 MyGame 0x0010e67e -[CCTouchDispatcher touchesEnded:withEvent:] in CCTouchDispatcher.m on Line 337
8 MyGame 0x0010f5d8 -[EAGLView touchesEnded:withEvent:] in EAGLView.m on Line 330
9 UIKit 0x33b3ddd8 -[UIWindow _sendTouchesForEvent:]
10 UIKit 0x33b38e64 -[UIWindow sendEvent:]
...
我仍在尝试自己复制这个。我所知道的是selectedItem_
可能是一个僵尸对象,因为我很久以前就设法复制了它。这对我没什么帮助。
我的游戏到处都有几个CCMenu
个实例,我的印象是很多菜单都是罪魁祸首,而不仅仅是一个。我必须和他们做一些有趣的事情,但我无法弄清楚是什么。
相反,我想知道,哪种代码可能导致CCMenu
上的SIGSEV错误?