ios try Catch的坑

try catch语法:

@try {
    //执行的代码
}
@catch {
  //发生异常后执行的代码
}
@finally {
  //一定会执行的代码
}

遇到的坑
当try的代码发生异常后,有可能会发生内存泄漏

测试代码

image.png

开始测试流程:

建立一个测试类

image.png

案例1:block引用了self,发生异常self会无法释放

image.png

解决方案:使用weak可以解决

image.png

案例2:临时变量引用的控制器无法释放

image.png
image.png

原因:因为临时变量temp无法释放,所以temp引用的self也无法释放
解决方案1:用weak引用self,self可以释放,但是临时变量temp依然无法释放
解决方案2:需要使用者对对象手动释放

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。