我是否需要使用dealloc方法与ARC?(Do I need use dealloc method

2019-08-08 03:14发布

所以,我有类:

@interface Controller : NSObject
{
    UILabel* fileDescription;
}

@property(strong, nonatomic) UILabel* fileDescription;

我是否需要使用方法的dealloc其中财产fileDescription将等于无?
例如:

-(void)dealloc
{
    fileDescription = nil;
}

如果不是,谁将会驳回fileDescription使用的内存?

Answer 1:

一般来说,你并不需要提供一个子类dealloc作为ARC管理实例变量的生命周期方法。

然而,它可以是执行清理比释放对象之外 ,例如向下干净地除去的观察者或关闭的网络连接是有用的。 因此你被允许继承dealloc ARC下,但你不能调用[super dealloc]从子类的方法中。

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



Answer 2:

没有。

你不需要dealloc的方法ARC

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

例如:

您正在运行在您的视图中的计时器,它的更新您的看法。 当你被解雇的观点,你需要停止计时器。 在这种条件下,你可以使用dealloc方法和停止计时器那里。

类似的NSNotification观察。



Answer 3:

如果您正在使用ARC。

无需使用的dealloc和释放,编译器知道你的财产和对象是强/弱,因此将对其进行管理。

编辑:

dealloc ,如果你使用像coreframework对象方法中,需要CG...CF... 。 即使您创建的通知,你需要将其删除观察员和dealloc是removeObserver的最佳场所。



Answer 4:

答案是否定的,因为与ARC没有必要的dealloc。



Answer 5:

当你正在使用ARC你没有使用dealloc编者将设置取决于财产,变量或控制的范围autoreleasePool。 它会会release内存。 有不同类型的autoreleasepool的通常我们可以将它们定义为功能水平,一流的水平等等等等,希望这有助于。



文章来源: Do I need use dealloc method with ARC?