美文网首页
在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内直接访问成员变量

    1.在block内直接访问成员变量,会造成循环引用. 解决办法: 在block内部__Strong typeof(...

  • block中访问成员变量与self的引用

    在block中直接访问成员变量和通过self.访问,block都会强引用self两种方式对比:通过 命令:clan...

  • block

    一篇文章看懂iOS代码块Block - 简书 在Block中可以访问局部变量 Block内访问全局变量和静态变量 ...

  • iOS中的Block访问变量使用注意问题

    一、Block内访问局部变量 a、在声明block后,调用block之前对局部变量修改,block里面扑获的值仍是...

  • Block 之 变量捕获

    为了保证block内部能够正常访问外部的变量,block有个变量捕获机制,即捕获外部变量。 前言: 搞清成员变量、...

  • iOS中 __block关键字的实现原理

    在block内如何修改block外部变量? 1.默认情况下,在block中访问的外部变量是复制过去的,即:.我们可...

  • block

    block block内部访问外部的变量 如果外部的变量是基本数据类型,在block内部不可以直接修改外部变量的值...

  • __block 和 weak 在ARC下的主要事项

    1、在ARC下,成员变量使用_block修饰,在block里面访问会造成retain cycle,不管是用self...

  • 犯过的一些蠢错

    block直接使用私有变量_property 在代码块中直接访问私有变量相当于self->_property。虽然...

  • 有关iOS面试问题总结

    1、block可以修改外部变量吗? 在block内如何修改block外部变量引发的思考:为什么直接就可以修改全局变...

网友评论

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

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