美文网首页
__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