美文网首页
__weak与__block

__weak与__block

作者: 圆木鱼 | 来源:发表于2016-10-17 18:01 被阅读0次

在使用block进行一些回调的时候,为了防止循环引用,我们常常用这样代码来处理:

__weak typeof(self)weakSelf = self;

但是,在阅读一些优秀的第三方框架的源码的时候,如AFNetworking,有时我们也会遇到这样的写法:

__block typeof(self)weakSelf = self;

这是因为Block可以访问局部变量,但是不能修改,如果修改局部变量,需要加__block.

PS:一般使用__block都是用到基本类型的变量

__strong typeof(self)strongSelf = weakSelf;

偶尔,还会见到,这种写法,多用在block里面
原因:有些回调调用的时候,不希望所引用的对象释放掉,就会用到这种写法,在AFNetworking里面有很多,或者多次使用weakSelf时一般会用__strong再引用一下.

相关文章

网友评论

      本文标题:__weak与__block

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