簡體   English   中英

我需要在ARC中使用dealloc方法嗎?

[英]Do I need use dealloc method with ARC?

所以,我上課了:

@interface Controller : NSObject
{
    UILabel* fileDescription;
}

@property(strong, nonatomic) UILabel* fileDescription;

我是否需要使用方法dealloc,其中屬性fileDescription將等於nil?
例如:

-(void)dealloc
{
    fileDescription = nil;
}

如果沒有,誰將解雇f​​ileDescription使用的內存?

通常,您不需要提供子類dealloc方法,因為ARC管理實例變量的生命周期。

但是, 除了釋放對象之外 ,執行清理可能很有用,例如刪除觀察者或干凈地關閉網絡連接。 因此,您可以在ARC下dealloc ,但不允許您在子類方法中調用[super dealloc]

但是,在您的特定情況下,它不是必需的。

沒有。

你不需要ARC dealloc方法。

但是,如果您想在視圖被解雇或釋放時執行一些清理任務。 這是最好的地方,在這種情況下你可以實現它。

例如:

您正在視圖中運行計時器,它正在更新您的視圖。 當您解除視圖時,您需要停止該計時器。 在那種情況下你可以使用dealloc方法並在那里停止計時器。

類似於NSNotification觀察員。

如果您使用ARC。

不需要使用dealloc和release,編譯器知道你的屬性和對象是強/弱的,所以它會管理它。

編輯:

如果你使用像CG...CF...這樣的coreframework對象,則需要dealloc方法。 即使您為需要刪除它的通知創建觀察者, dealloc也是removeObserver的最佳位置。

Ans是NO因為ARC不需要dealloc。

當您使用ARC時,您不必使用dealloc Complier將根據屬性,變量或控件的范圍設置autoreleasePool。 它會release內存。 有不同類型的autoreleasepool我們通常可以將它們定義為功能級別,類級別等等。希望這會有所幫助。

暫無
暫無

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

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