美文网首页
底层9:block循环引用

底层9:block循环引用

作者: 张无奈 | 来源:发表于2020-08-31 00:34 被阅读0次

由于block会对block中的对象进行持有操作,就相当于持有了其中的对象,而如果此时block中的对象又持有了该block,则会造成循环引用

ARC循环引用解决:__weak、__unsafe_unretained、__block

解决循环引用问题 - MRC

__weak:不会产生强引用,指向的对象销毁时,会自动让指针置为nil

__unsafe_unretained:不会产生强引用,不安全。指向的对象销毁时,指针存储的地址值不变,会产生野指针。

__block:需要在内部置为nil,缺点时必须要调用block

MRC环境下解决循环引用:__unsafe_unretained、__block(因为在mrc环境下,不会retain产生强引用)

MRC不支持__weak


相关文章

网友评论

      本文标题:底层9:block循环引用

      本文链接:https://www.haomeiwen.com/subject/uimjsktx.html