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