由于堆区block对其中使用的auto变量有引用,默认情况下,变量为__strong修饰,即强引用,此时若变量也拥有此block时,会形成循环应用。(场景:当ViewController中定义了一个block对象,当在block中使用self时,此时的self为方法的默认参数,属于auto变量,故对self产生强引用,形成循环引用。)
1.ARC环境下

2.MRC环境下

由于堆区block对其中使用的auto变量有引用,默认情况下,变量为__strong修饰,即强引用,此时若变量也拥有此block时,会形成循环应用。(场景:当ViewController中定义了一个block对象,当在block中使用self时,此时的self为方法的默认参数,属于auto变量,故对self产生强引用,形成循环引用。)
本文标题:【block第四篇】解决循环引用
本文链接:https://www.haomeiwen.com/subject/mqsslqtx.html
网友评论