簡體   English   中英

dealloc不被要求控制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM