我目前正在爲iPhone開發我的第一個應用程序,我已經差不多完成了,但我遇到了內存管理等問題。請記住,我對Java很好,我只學習了Objective C約4天。Objective C內存問題
所以,確切的問題在於這個領域(在星號之間)。 注意:如果重要的話,所有的代碼都在一個大的遊戲循環中。
else
{
***********************************
NSString *rand = [NSString stringWithFormat:@"%@", randNumberS];
while(lastTime + interval >= currentTime)
{
!!!!!!!!!NSString *user = [NSString stringWithFormat:@"%@", userText];
if([user isEqualToString: rand])
{
***********************************
score += 10;
randNumberS = nil;
timeToGenerateNum = true;
bottomClear = true;
break;
}
else
{
//NSLog(@"%@ != %@, %i", userText, randNumberS, score);
}
}
NSLog(@"Game Over! Your score was %i!", score);
}
}
每次我才啓用殭屍我跑了(注:該代碼跑了幾秒鐘的BTW),我得到了一個Thread 6: Program received signal: "EXC_BAD_ACCESS"
在標有行「!」。啓用殭屍後,它會運行幾秒鐘,然後停止工作,並在控制檯中顯示消息-[CFString respondsToSelector:]: message sent to deallocated instance 0x11168440
。它也標記與「!」相同的行我注意到這兩個問題,他們都指向糟糕的內存管理,我試圖釋放NSString對象,但我的程序不會讓我釋放對象(注意:我得到這個錯誤信息"release" is unavailable: not available in automatic reference counting mode
)。
任何幫助將不勝感激,謝謝!
編輯:
userText以各種數量的方法中使用,但主要是在這一個。
-(IBAction)button1Clicked:(id)sender
{
if(userText == nil)
{
userText = [NSString stringWithFormat:@"%i", 1];
}
else
{
userText = [NSString stringWithFormat:@"%@%i",userText , 1];
}
bottomLabel.text = userText;
NSLog(@"Test 1");
}
它看起來像在userText的實例不再你身邊,你可以顯示如該被初始化,以及它是如何在這個代碼的其他地方處理? – 2012-07-07 16:41:04