0

在該代碼的末尾:UINavigationController的釋放富礦

UIViewController *viewController = [[UIViewController alloc] init]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[viewController release]; 
[self presentModalViewController:navigationController animated:YES]; 
[navigationController release]; 

導航控制器出現模態,和往常一樣,但是當我點擊的viewController一個按鈕,它崩潰。實際上,viewController的保留計數爲0. 如果我對兩個發行版中的一個發表評論,那麼一切都會比預期的更好。 我幾乎到處都能看到這個代碼,有什麼可能是錯誤的?

回答

2

您發佈的代碼是正確的,但是您在其他地方發佈了某些內容。

有幾件事情需要注意:

首先,never trust retainCount

其次,請確保您正確地管理你的筆尖對象的內存,如here所述。

最後,您需要在樂器中使用NSZombie檢測來找出真正的問題所在。 This video提供了一個不錯的方法。

+0

對於retainCount,我很確定我正確使用它。除了默認的MainWindow.xib,我沒有使用任何筆尖。不知道NSZombie是否會在這種情況下提供幫助,但實際上我應該試一試。 – gurghet 2010-10-11 03:24:00

+0

問題是你*無法正確使用retainCount。返回的號碼不被信任。這是一個毫無意義的數字。 – 2010-10-11 03:28:27

+0

我知道,但如果應用閒置一兩秒後,它通常會提供一個有用的數字。我從來沒有使用NSZombie與樂器,看起來更實用! – gurghet 2010-10-11 03:35:44