CCMenuItem 및 CCCallFunc의 타이밍 문제가 발생했습니다.cocos2d 도움 : CCMenuItem 선택되지 않은 'EXC_BAD_ACCESS'및 CCCallFunc
는 기본적으로 나는 CCMenuItem 클래스
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
...
[selectedItem_ unselected]; // EXC_BAD_ACCESS
[selectedItem_ activate];
...
}
이 라인 @ 'EXC_BAD_ACCESS'
받고 있어요 터치가 종료되기 전에 메뉴 항목이 해제되는 것 같다. 나는
이 때문에 CCMenuItem 시퀀스의 마지막 작업은 내가 전화를 부모에서 그것을 제거하는 'removeThisSprite'메소드를 호출하는 CCCallFunc을 사용하고 있습니다 :
[CCCallFuncO actionWithTarget:self selector:@selector(removeThisSprite:) object: _currentButton]
removeThisSprite 방법은 다음과 같이이다 :
CCMenuItemSprite2 *sender = nil;
sender.isEnabled = NO;
if ([_sender isKindOfClass:[CCMenuItemSprite class]]) {
sender = _sender;
[sender removeFromParentAndCleanup: YES];
}
이것은 일반적으로 플레이어가 도청으로 화면을 스팸하면 발생하지만 도청이 빠르지 않는 한 발생하지 않습니다. 내가하고있는 게임에서 어떤 일이 일어날 것인가. 나는 플레이어가 버튼을 너무 빨리 누르는 것과 같은 타이밍 문제가 있다고 생각합니다.