簡體   English   中英

解雇后,模態視圖不會釋放自身

[英]Modal View doesn't release itself after dismiss

我一直面臨着一個怪異的問題,那就是放棄了模態視圖。

我提出這樣的模態視圖:

 ResepiDetail *detail =(ResepiDetail*)[[ResepiDetail alloc]init];
 [self presentModalViewController:detail animated:YES]; 

然后使用后退按鈕將其關閉:

[self dismissModalViewControllerAnimated:YES];

此后,視圖將關閉自身並返回上一個視圖,但不會從內存中釋放自身。 我通過發送通知消息發現了該視圖,並且該視圖已收到它。 另外,我嘗試跟蹤VM內存分配,並且該視圖似乎仍在內存中。

我正在使用ARC,並且使用與另一種視圖完全相同的方法。

如前所述,代碼很好,所以這里有一些提示如何進行:

肯定火的方式來肯定你的視圖控制器還沒有被釋放是重寫的dealloc和日志的東西識別。 您仍然可以在ARC中做到這一點,只是不必顯式調用super 如果您沒有看到期望的日志,則說明存在問題。

假設您確定確實有問題,那么問題就變成了發現保留周期。 如果問題是ResepiController的實例沒有被取消分配,那么您需要尋找...

  1. ResepiController類之外的任何ResepiControllerstrong引用的代碼。 例如,如果您的班級注冊為其他班級的委托,請確保該委托未使用strong引用。
  2. 任何可能隱式保留了self內部塊。 在您認為應該發布的控制器中,程序中是否有任何塊可能引用了您的控制器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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