Итак, я получаю ошибку EXC_BAD_ACCESS в cocos2d. Из того, что я искал до сих пор, это в основном связано с попыткой освободить объект, который уже был освобожден. Я сталкивался с этой ошибкой раньше, и ее решение было простым и в значительной степени вызвано освобождением освобожденного объекта. Но теперь, используя cocos2d (не уверен, что это ошибка в их структуре или нет), я получаю EXC_BAD_ACCESS в этой строке:
CCMenuItemSprite *btn = [CCMenuItemSprite itemFromNormalSprite:op selectedSprite:op target:self selector:NSSelectorFromString([sceneMethods objectAtIndex:i])];
По сути, я создаю простую систему меню для простого обслуживания и обновления. Ничего особо серьезного. В этой конкретной строке я создаю CCMenuItemSprite с self в качестве цели и использую селектор. Я уже утверждал, что селектор, переданный в качестве аргумента, является правильным, а также пытался использовать разные для нормального и выделенного спрайта (хотя это не должно иметь никакого значения), но все равно нет! Ошибка глубоко в структуре cocos2d, именно тогда, когда CCMenuItem «активирован», который вызывает invoke на NSInvoker того же класса. Анализируя трассировку стека, он падает именно на методе invoke, что наводит на мысль, что он как-то связан с NSInvoker. У кого-нибудь была похожая проблема или есть предложение по этой проблеме? Заранее спасибо.