skå*_*fan 0 iphone cocoa-touch memory-management ios4
我有一个自定义UIView,它通过UIViewController内的NIB加载.
我一直在努力- [UIScrollView retainCount]:消息整天发送到解除分配的实例错误.
我的自定义UIView子类dealloc方法如下所示:
-(void)dealloc {
[myScrollView dealloc];
[someProperty dealloc];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
问题是它总是在[super dealloc]上崩溃,因为前面有[myScrollView dealloc].
当我改变方法时:
-(void)dealloc {
[super dealloc];
[myScrollView dealloc];
[someProperty dealloc];
}
Run Code Online (Sandbox Code Playgroud)
一切都很好.我的问题是,如果首先或最后调用[super dealloc]会有所不同吗?在大多数例子中,我看到它被称为last.
[super dealloc]永远应该是最后一次打电话dealloc.你的问题是你应该调用release其他对象,而不是dealloc.dealloc当对象的释放计数达到零时,运行时调用,您的代码永远不应该直接调用它.
因此,您的代码应该看起来像:
-(void)dealloc {
[myScrollView release];
[someProperty release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |