我正在爲iPhone上的Cocos2d遊戲工作。這段代碼爲什麼給EXC_BAD_ACCESS?
以我init方法我有一個對象(類型ID)聲明如下(也note注意bossDir被聲明爲1):在一計時器方法
bossMov = [CCMoveTo actionWithDuration:1.0f position:ccp(75*bossDir, 320-55)];
[boss runAction:bossMov];
然後,我有:
if ([bossMov isDone] == YES) {
bossDir = -bossDir;
[boss stopAllActions];
[boss runAction:bossMov];
}
它移動的老闆一次,但之後它給EXC_BAD_ACCESS,並指出我的文件「CCTimer.m」這樣一行:
if(elapsed >= interval) {
impMethod(target, selector, elapsed); //This line in particular.
elapsed = 0;
}
我該如何解決這個問題?
非常感謝這個答案,它真的救了我使用NSZombie!我有一個玩家實例(NSObject),它是一個autorelease對象,因爲我假定所有的CCSprite(cocos2d)等都是autorelease,但是我沒有想到的是,cocos2d庫將所有CCSprites存儲在數組中,所以它們被用在某處意味着它們不會被釋放,但是我的播放器實例在初始化後立即被釋放,然後當我的主定時器被調用時程序會崩潰。然後,我更改了要保留的玩家,並在我的分配中釋放它。再次感謝:) – 2012-01-19 13:33:01
很高興幫助你 – Radix 2012-02-16 06:49:42