Block循环引用问题
来源:互联网 发布:smt编程工程师多少工资 编辑:程序博客网 时间:2024/05/07 18:11
我们在声明Block属性后,需要在合适的时间回调Block,为了防止在回调Block的时候它已经被释放掉了,所有需要将它的语义特性设为copy,copy到堆中.
而我们在用self.XXX调用属性的时候,相当于用了它的setter方法,会对它的引用计数加1,对象有一个Block属性,然而这个Block属性中又引用了对象的其他成员变量,那么就会对这个变量本身产生强应用,那么变量本身和他自己的Block属性就形成了循环引用
怎么避免
//一般情况下,block不要用self,如果必须要使用,用__block修饰
__blockSecondViewController *second =self;
self.block = ^(){
second.view.backgroundColor = [UIColorredColor];
self.block = ^(){
second.view.backgroundColor = [UIColorredColor];
};
0 0
- block循环引用问题
- block循环引用问题
- block循环引用问题
- Block循环引用问题
- block循环引用问题
- Block循环引用问题
- ios block循环引用问题
- ios block循环引用问题
- block 循环引用的问题
- Block的循环引用问题
- ios block循环引用问题
- ios block循环引用问题
- Block的循环引用问题
- ios- block循环引用问题
- ios- block循环引用问题
- iOS block循环引用问题
- block的循环引用问题
- Block的循环引用问题
- iOS开发 各种知识点的链接
- 公钥,私钥,数字签名的理解
- OkHttpUtils的Eclipse版Lib
- C语言 进制转换
- fedora环境交叉编译transmission1.83的QT工程
- Block循环引用问题
- java异常处理<1>__笔记(17)
- C++基于TCP和UDP的socket通信
- C++ primer 第三章 标准库类型
- android.view.InflateException 异常处理
- 多TAB可悬浮头控件
- Svn: E155010: Pristine Text A31e85c8da93f9838bde24db70544f9089ed4359 Not Present
- 使用 Math 类操作数据
- 《ActiveMQ In Action》Chapter 4 Connecting to ActiveMQ