Ошибка управления памятью при использовании cocos2d для iPhone - PullRequest
0 голосов
/ 25 мая 2010

Итак, я получаю ошибку 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. У кого-нибудь была похожая проблема или есть предложение по этой проблеме? Заранее спасибо.

1 Ответ

0 голосов
/ 25 мая 2010

Просто предположение: вы полностью уверены, что все объекты в sceneMethods являются реальными селекторами?

...