Objective - C dealloc方法注意事项

当对象引用降为0(此时retainCount不一定为零,由于优化retainCount没有执行-1,对象直接释放)的时候,对象会被释放。但是具体何时释放,无法保证

dealloc 应该执行那些操作

1.清理观测行为(移除通知,键值观测)

2.释放对象拥有的引用,比如释放一些非Objective-C对象

dealloc 不应该执行那些操作

1.开销过大或系统稀缺的资源,例如文件描述符、套接字、大块内存等。这些资源不应该保留过长时间。不过可以利用dealloc方法防止忘记清理这些资源

2.不要在dealloc里谁便调用其他方法。如果调用的方法执行某些异步任务,那么等到任务结束时,系统已经销毁了这个对象。这很容易引起应用崩溃(因为已经无法回调到此对象);调用自己的方法自己的方法,因为对象处于正在回收状态

了解更多请参考:Effective Objective-C 2.0 第31条

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容