1

在viewWillDisappear中釋放對象是否安全?因爲這些對象將在viewWillAppear上再次被重新創建。釋放視圖中的對象將會消失

所以,這就是我寫它的方式。這樣做有害嗎?

- (void)dealloc { 
    [self releaseObjects]; 
    [super dealloc]; 
} 

- (void)releaseObjects { 
    self.request = nil; 
    self.loadingOverlay = nil; 
    self.textView = nil; 
    self.label = nil; 
    self.endPoint = nil; 
} 

- (void)viewWillDisappear:(BOOL)iAnimated { 
    [super viewWillDisappear:iAnimated]; 
    [self releaseObjects]; 
} 

回答

2

通常情況下,您在創建它們的「companion」函數中釋放變量。所以,如果你在viewWillAppear中創建它們,那麼你將在viewWillDisappear中釋放它們。 viewWillLoad,viewWillUnload等版本。

所以是的,這是正常的。

1

它不應該破壞任何東西,但它可能是浪費......說vc是在一個標籤上,用戶反覆切換標籤。你會做很多額外的免費/分配工作。

除非有一些不尋常的消耗資源,我把它留給操作系統,讓我知道,我應該釋放與爲此目的作出的鉤記憶:didReceiveMemoryWarning,dealloc的等

+0

但並不像每當用戶在選項卡之間反覆切換時,我最終都會創建自動釋放的對象。更多的是,我沒有看到dealloc在我關閉View Controller後被調用。我這樣做是因爲我在我的應用程序中看到了內存警告 - 每天2-3次! – Abhinav