所以想來想去,並在花時間有點無奈試圖尋找內存管理問題我做了一些研究,最後經過屈服於改變到ARC。這是相對無痛的。然而,我的UIViewControllers出現了一個新問題,Pre-arc他們都按照廣告方式工作,我把它們推到堆棧上,他們出現了,我從堆棧中彈出它們的dealloc方法被調用,每個人都很高興。切換到ARC,永遠不會調用dealloc。這是不幸的。所以我做了一些研究這個問題,讓我列出我在做什麼和/或沒有做UIViewControllers和ARC
。首先,我推到堆棧中的觀點是不明確聲明強烈。
.the委託子類具有父類的是unsafe_unretained,但對於覆蓋基地我甚至註釋掉委託設置到父,沒有歡樂。
.Turned關NSzombies爲明顯,將導致東西粘在ARC各地啓用的碼
。我改變了我的代碼,根據布拉德拉鬆斯回答Memory not released in ios view hierarchy,從這個
if (_friendsListVC == nil)
{
_friendsListVC = [[FriendsListViewController alloc] initWithNibName:nil bundle:nil];
_friendsListVC.delegate = self;
}
[self.navigationController pushViewController:_friendsListVC animated:YES];
(_friendsListVC是一個成員變量)。爲了這
FriendsListViewController *fVC = [[FriendsListViewController alloc] initWithNibName:nil bundle:nil];
//fVC.delegate = self;
[self.navigationController pushViewController:fVC animated:YES];
再次
沒有喜悅,在dealloc中斷點永遠不會被擊中,事情是我推和彈出了很多的意見,我的應用程序,所以這隻會導致更多的內存問題,對那些頂部我改爲ARC以希望修復...
另請注意我在這個視圖以及其他一些其他代碼塊,但我不使用自我,我也閱讀是自我保留,所以你應該當涉及到代碼塊時,參考值很低。
我很樂難倒,任何人都可以闡明我,什麼ARC是幹什麼的?或者我不尊重使用ARC?並且爲了將來的引用,您希望推入到ARC中的視圖層次結構中的所有視圖都不是實例變量?
在此先感謝。
您啓用了nszobie嗎? –