yui*_*nnu 9 destructor objective-c automatic-ref-counting
我正在尝试通过覆盖dealloc在Objective-C类中创建一些清理代码:
-(void)dealloc {
//cleanup code
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
虽然我不能这样做,因为[super dealloc]启用ARC时编译器不允许这样做.有没有我可以使用的替代方案?
omz*_*omz 22
从过渡到ARC发行说明(强调我的):
如果需要管理除释放实例变量之外的资源,则可以实现dealloc方法.您不必(实际上您不能)释放实例变量,但您可能需要在系统类和未使用ARC编译的其他代码上调用[systemClassInstance setDelegate:nil].
ARC中的自定义dealloc方法不需要调用[super dealloc](它实际上会导致编译器错误).链接到super是由编译器自动执行的.
所以你在dealloc使用ARC时可以进行同样的清理,只是不要打电话super.
当ARC处于活动状态时,您根本就不会打电话[super dealloc].ARC会为你做这件事.或者,您可以使用一种prepareForDealloc允许您调用的方法,super以及从dealloc基类中调用的方法.
| 归档时间: |
|
| 查看次数: |
9709 次 |
| 最近记录: |