2010-05-24 65 views
1

調用initWithNib後,我有額外的保留計數。 這可能是什麼原因造成的? (有沒有引用網點筆尖)initWithNibName後額外保留計數

StepViewController *stepViewController = [[StepViewController alloc] initWithNibName:@"StepViewController" bundle:nil]; 
[self.navigationController pushViewController:stepViewController animated:YES]; 
[stepViewController release]; 
NSLog(@"nextStep stepViewController retain count %i", [stepViewController retainCount]); 

上述結果在3保留個性化......

感謝對如何解決

+0

澄清 - initWithNibName和pushViewController後4保留計數是1 ... 任何想法? – OptimisticMonkey 2010-05-24 03:30:15

回答

7

您有哪些疑難解答?這裏沒有錯。 -retainCount不是您的業務,並且幾乎不會告訴您有關係統的任何信息。每個自動發佈的對象都會有一個明顯的retainCount,比你想象的要高。如果內部對象對這個對象感興趣,他們將擁有自己的保留,你可能期望也可能不期望。

您的業務是平衡您自己的保留和發佈。系統的其餘部分負責平衡它們。你不應該再次猜測它,如果你這樣做了,-retainCount不太可能幫助你。它幾乎總是更具誤導性而不是有用的。

實際上是否存在您擔心的泄漏?

+5

+100'retainCount'應該從Cocoa框架中刪除。看看它,想知道發生了什麼,除了悲傷之外,什麼都沒有。忘記它存在,你的生活會更簡單。 – 2010-05-24 03:41:05

+0

Rob - 你是對的 - 我正在解決我造成的保留計數問題......沒有說明保留計數高於預期是可以的。修復我的保留問題後,一切工作。 順便說一句 - 這個問題是因爲另一個擁有的對象有一個屬性設置使用保留而不是分配.... 感謝您的幫助 – OptimisticMonkey 2010-05-24 04:19:17

+0

戴夫說+1,000,000。 – JeremyP 2010-05-24 09:28:39

0

你將不得不尋找任何意見到源代碼或API文檔中找出。但是看起來合乎邏輯的是,nvaigation控制器有一個,從xib加載的視圖有一個,所以這可能是另一個由naviation控制器中的東西完成的我的猜測。