Vit*_*Vit 39 iphone objective-c ios automatic-ref-counting
所以,我上课了:
@interface Controller : NSObject
{
UILabel* fileDescription;
}
@property(strong, nonatomic) UILabel* fileDescription;
Run Code Online (Sandbox Code Playgroud)
我是否需要使用方法dealloc,其中属性fileDescription将等于nil?
例如:
-(void)dealloc
{
fileDescription = nil;
}
Run Code Online (Sandbox Code Playgroud)
如果没有,谁将解雇fileDescription使用的内存?
tro*_*foe 81
通常,您不需要提供子类dealloc方法,因为ARC管理实例变量的生命周期.
但是,除了释放对象之外,执行清理可能很有用,例如,删除观察者或干净地关闭网络连接.因此dealloc,您可以在ARC下进行子类化,但不允许您[super dealloc]在子类方法中进行调用.
但是,在您的特定情况下,它不是必需的.
没有.
你不需要dealloc方法ARC.
但是,如果您想在视图被解雇或释放时执行一些清理任务.这是最好的地方,在这种情况下你可以实现它.
例如:
您正在视图中运行计时器,它正在更新您的视图.当您解除视图时,您需要停止该计时器.在那种情况下你可以使用dealloc方法并在那里停止计时器.
类似的NSNotification观测.
如果您使用ARC.
不需要使用dealloc和release,编译器知道你的属性和对象是强/弱的,所以它会管理它.
编辑:
dealloc如果您使用像CG...&这样的coreframework对象,则需要使用方法CF....即使您为需要删除它的通知创建观察者,dealloc也是removeObserver的最佳位置.
| 归档时间: |
|
| 查看次数: |
18618 次 |
| 最近记录: |