美文网首页
在block内直接访问成员变量

在block内直接访问成员变量

作者: 冬日无恙 | 来源:发表于2020-03-04 14:36 被阅读0次

    1.在block内直接访问成员变量,会造成循环引用.

    解决办法:

    在blcok外部 __weak typeof(self)weakSelf = self;
    

    在block内部__Strong typeof(weakSelf)strongSelf = weakSelf;

    访问成员变量的方法

    strongSelf->***;

    在blcok内部修改值以后打印地址,发现地址发生了变化.

    例子:

    __weak typeof(self)weakSelf = self;
    self.testBlock= ^{

        __strongtypeof(weakSelf) strongSelf = weakSelf;
    
        strongSelf.p.name=@"wang";
    
        strongSelf->_maxIndex=@"ok";/// 注意修改的时候地址发生了变化
    
        NSLog(@"_maxIndex == %p", strongSelf->_maxIndex);
    
    };
    self.testBlock();

    相关文章

      网友评论

          本文标题:在block内直接访问成员变量

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