這個問題一直困惑,現在我好幾天。我有一個NSString,'spriteType'。它是使用屬性和綜合方法聲明的。在創建字符串的層中,我還創建了一個CCNode。該節點是在一個方法中創建的。對象過度釋放按鈕按下
- (void) spritePick {
CCMenuItemImage *go = [CCMenuItemImage itemFromNormalImage:@"button_go.png" selectedImage:@"button_go_selected.png" target:self selector:@selector(test)];
spritePickMenu = [CCMenu menuWithItems:go, nil];
spritePickMenu.position = ccp(0,0);
spritePick = [CCNode node];
[spritePick addChild:spritePickMenu];
spritePick.position = ccp(240,160);
[self addChild: spritePick];
}
'測試' 方法,它是從按鈕調用,很簡單:
- (void) test {
NSLog(@"%@",spriteType);
}
的NSLog的線崩潰我的遊戲,並給出錯誤:從EXC_BAD_ACCESS
Anywhere的開在'測試'方法中,代碼工作正常。爲什麼會來給我當方法已經從節點稱爲誤差,但不會把它給我,當它已經從別的地方叫什麼名字?
如果需要的話我可以給你完整的代碼。
再次檢查代碼流,有時我們可能會漏掉一些東西。根據我的猜測,「spriteType」沒有初始化。有些地方在代碼中寫入以下行,然後檢查self.spriteType = @「」; – ajay
也許你正在做一些內存錯誤,造成殭屍,最終導致應用程序崩潰。提供完整的代碼看起來是個好主意。 – Lio