У меня были проблемы с CCMenuItem и его синхронизацией с CCCallFunc.
В основном я получаю 'EXC_BAD_ACCESS'
@ эту строку класса CCMenuItem
-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
{
...
[selectedItem_ unselected]; // EXC_BAD_ACCESS
[selectedItem_ activate];
...
}
Кажется, что пункт меню освобождается до окончания касания.Я использую CCCallFunc для вызова метода removeThisSprite, который удаляет его из родительского
, поэтому последнее действие последовательности CCMenuItem, которое я вызываю:
[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];
}
Это обычно происходит, когда игрок «спамит» экран касаниями, но не происходит, если касания не быстрые.Что может произойти с игрой, которую я делаю.Я предполагаю, что есть какая-то проблема с синхронизацией, когда игроки слишком быстро нажимают на кнопку.