我需要用ARC使用dealloc方法吗?
所以,我有课:
@interface Controller : NSObject { UILabel* fileDescription; } @property(strong, nonatomic) UILabel* fileDescription;
我需要使用方法dealloc属性fileDescription将等于零?
例如:
-(void)dealloc { fileDescription = nil; }
如果不是的话,谁将解雇fileDescription使用的内存?
通常你不需要提供一个子类的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。希望这有助于。