我真的很努力理解從基於ARC-項目自定義tableViewCell內存泄漏和希望有人也許能夠揭示一些輕若以下可能負責,或者我完全吠叫了錯誤的樹。基本建議
所以,我推着tableViewController到navigationController和TableView中,我有我自己的自定義tableViewCells。
這種風俗tableViewCell具有從的cellForRowAtIndexPath和分換句話說分配給tableViewController本身,所以委託財產......
cell.delegate = self;
這種風俗tableViewCell也有一對夫婦的通知中心觀察員。現在
,我已經把代碼以去除tableViewCell的dealloc的觀察員和同樣去加...
self.delegate = Nil;
...才發現的dealloc沒有以前任何時候都被稱爲,即使在點擊返回時(例如,通過推送的tableViewContoller有效地返回導航堆棧)。
所以,我想這可以歸結爲:既可以的細胞的這些方面導致泄漏?如果是這樣,我是否要以正確的方式停止泄漏?
編輯:我定義我的委託屬性如下:
@property (nonatomic, retain) MyTableViewController *delegate;
的Une儀器找出你泄露了什麼(或者超過保留),並從那裏。代表是否保留(通常不應該)。表格視圖控制器應該在表格視圖告訴它不再顯示單元格時移除它自己。 – Wain
這可能有助於瞭解如何在自定義單元視圖中定義代理iVar。但是,由於性能的原因,要知道'UITableViewCell'可以被回收(通過'initWithStyle:reuseIdentifier:'和'dequeueReusableCellWithIdentifier:')。如果表格單元格是可重用的,那麼在表格視圖消失之前,您可能不會立即看到對象的dealloc。 –
好點 - 添加了我的iVar定義。 – bcl