[英]dealloc gets not called for control
我有UIWebView的子類,並在視圖控制器中使用它。
CViewController *controller = [[CViewController alloc] init];
self.webView = controller;
[controller release];
現在在我的視圖控制器中,調用了dealloc並調用了[_webView release]
但是從不調用UIWebView子類中的dealloc,並且每次將一個視圖控制器放在堆棧上時,內存使用率都會提高,並且從堆棧彈出后再也不會釋放。 我也可以在Safari開發工具中看到我所有的窗口,因此它們永遠不會被釋放。 我檢查了retainCount(我知道它不是很有用),但它告訴我分配給我的屬性后retainCount是3? (屬性是非原子的,保留)
3的retainCount
是紅色鯡魚; 無用的分心。 http://www.whentouseretaincount.com等。
由於您有反復泄漏的情況,因此Heapshot分析應有助於准確查明內存為何停留在周圍。
但是,您可能不需要走那么遠。 如果您的應用程序只有一個UIWebView,那么您應該只需能夠將“分配”工具配置為僅跟蹤活動對象並跟蹤保留/釋放事件。 這樣,將內存中的對象列表篩選到UIWebView,然后單擊以找到與該對象關聯的保留/釋放事件的列表。 可以在此處找到額外的保留。
但是,這可能是症狀而不是原因。 原因可能是緩存出錯,也可能是其他未正確釋放的對象掛在Web視圖上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.