所以,我有类:
@interface Controller : NSObject
{
UILabel* fileDescription;
}
@property(strong, nonatomic) UILabel* fileDescription;
我是否需要使用方法的dealloc其中财产fileDescription将等于无?
例如:
-(void)dealloc
{
fileDescription = nil;
}
如果不是,谁将会驳回fileDescription使用的内存?
一般来说,你并不需要提供一个子类dealloc
作为ARC管理实例变量的生命周期方法。
然而,它可以是执行清理比释放对象之外 ,例如向下干净地除去的观察者或关闭的网络连接是有用的。 因此你被允许继承dealloc
ARC下,但你不能调用[super dealloc]
从子类的方法中。
在您的特定情况下,它不是必需的,但是。
没有。
你不需要dealloc
的方法ARC
。
但是,如果你想要做一些清理任务时,你的观点是解雇或解除。 这是最好的地方,在这种情况下,你可以实现它。
例如:
您正在运行在您的视图中的计时器,它的更新您的看法。 当你被解雇的观点,你需要停止计时器。 在这种条件下,你可以使用dealloc方法和停止计时器那里。
类似的NSNotification
观察。
如果您正在使用ARC。
无需使用的dealloc和释放,编译器知道你的财产和对象是强/弱,因此将对其进行管理。
编辑:
dealloc
,如果你使用像coreframework对象方法中,需要CG...
& CF...
。 即使您创建的通知,你需要将其删除观察员和dealloc
是removeObserver的最佳场所。
答案是否定的,因为与ARC没有必要的dealloc。
当你正在使用ARC你没有使用dealloc
编者将设置取决于财产,变量或控制的范围autoreleasePool。 它会会release
内存。 有不同类型的autoreleasepool的通常我们可以将它们定义为功能水平,一流的水平等等等等,希望这有助于。