我需要用ARC使用dealloc方法吗?

所以,我有课:

@interface Controller : NSObject { UILabel* fileDescription; } @property(strong, nonatomic) UILabel* fileDescription; 

我需要使用方法dealloc属性fileDescription将等于零?
例如:

 -(void)dealloc { fileDescription = nil; } 

如果不是的话,谁将解雇f​​ileDescription使用的内存?

通常你不需要提供一个子类的dealloc方法,因为ARCpipe理着实例variables的生命周期。

但是, 除了释放对象之外 ,执行清理可能很有用,例如清除观察者或closuresnetworking连接。 因此,您可以在ARC下dealloc ,但不允许在子类方法中调用[super dealloc]

然而,在你的特殊情况下,这不是必需的。

没有。

ARC不需要dealloc方法。

但是,如果你想要做一些清理任务,当你的观点是解雇或释放。 这是最好的地方,在这种情况下,你可以实现它。

例如:

你在视图中运行一个计时器,它正在更新你的视图。 当你被解雇时,你需要停止这个计时器。 在这种情况下,您可以使用dealloc方法并在那里停止计时器。

类似的NSNotification观察员。

如果你正在使用ARC。

不需要使用dealloc和release,编译器知道你的属性和对象是强/弱的,所以它会pipe理它。

编辑:

如果使用像CG...CF...这样的核心框架对象,则需要dealloc方法。 即使你创build观察员需要删除它的通知, dealloc是removeObserver最好的地方。

Ans是NO因为用ARC不需要dealloc。

在使用ARC时,您不必使用dealloc Complier将根据属性,variables或控件的范围来设置autoreleasePool。 它会release内存。 一般我们可以将它们定义为函数级别,类级别等,有不同types的autoreleasepool。希望这有助于。