block和self的相互引用造成的循环引用,想必大家都是明白的。上下面的代码(截取部分)__weak typeof(self) weakSelf = self; self.jsBridgeFunctionDic = @{ JSBridgeCallNativePage...
分类:
其他好文 时间:
2015-11-25 11:02:08
阅读次数:
134
block使用小结、在arc中使用block、如何防止循环引用
分类:
其他好文 时间:
2015-11-24 14:41:23
阅读次数:
132
委托的作用有两个,一个是传值,一个是传事件。 委托用到的最多的用途 回传值(回调) 当我们声明了遵循的协议的属性时,属性的关键字要用weak或者assign,目的是为了避免循环引用 委托模式,它的特点是,一对一 用途是用在有上下级关系的两个view,不能跨级调用 例如:Read...
分类:
其他好文 时间:
2015-11-23 23:38:48
阅读次数:
337
强指针:默认情况下,任何指针都是强指针弱指针:使用__weak修饰的指针ARC准则:只要没有强指针指向对象,那么这个对象就会被销毁普通对象用strong(人在狗在)对象在对象的属性对象就在循环引用:两个对象循环引用随便一个对象使用弱指针(weak),另一个对象使用强指针(strong)代理和UI控件...
分类:
其他好文 时间:
2015-11-23 16:40:16
阅读次数:
126
一、parent-child相互持有、委托模式【案例】:@interface FTAppCenterMainViewController (){}@property(weak,nonatomic) UITableView* myTableView;@end这里面的myTableView就使用了wea...
分类:
移动开发 时间:
2015-11-20 00:04:59
阅读次数:
387
A.h#include "B.h"class A{public: B* m_b;}B.h#include "A.h"class B{public: A* m_a;}上面这样是编译不过的,把A.h中的#include "B.h"去掉,改为class B;
分类:
编程语言 时间:
2015-11-19 18:40:33
阅读次数:
857
这篇博文继续block的常见错误——循环引用。 循环引用是很多初学者不能察觉的,其产生的原因,是block中的代码会对对象进行强引用。 读者请阅读示例代码1,并思考示例代码1所创建的对象能否被正常销毁? 示例代码...
分类:
移动开发 时间:
2015-11-12 10:08:33
阅读次数:
289
所有的引用计数系统,都存在循环应用的问题。 例如下面的引用关系对象: ?a创建并引用到了对象b. 对象b创建并引用到了对象c. 对象c创建并引用到了对象b. 这时候b和c的引用计数分别是2和1。当a不再使用b,调用rel...
分类:
移动开发 时间:
2015-11-11 19:26:40
阅读次数:
413
造成循环引用的原因: 比如在main函数中创建了两个类的对象A和B,现在引用计数都是1.现在让A和B互相引用(A有一个属性是B对象),属性说明是retain,B有一个属性是A的对象,属性说明是retain),现在两个对象的引用计数都增加1,都变成2. 现在执行[A release]; [B re.....
分类:
其他好文 时间:
2015-11-07 17:41:37
阅读次数:
238
__weak本身是可以避免循环引用的问题的,但是其会导致外部对象释放了之后,block 内部也访问不到这个对象的问题,我们可以通过在 block 内部声明一个__strong的变量来指向 weakObj,使外部对象既能在 block 内部保持住,又能避免循环引用的问题__block本身无法避免循环引...
分类:
其他好文 时间:
2015-11-04 14:32:19
阅读次数:
170