ios UI控件引用用weak,UI控件代理属性必须用weak

来源:互联网 发布:mac上怎么用搜狗输入法 编辑:程序博客网 时间:2024/04/29 20:45

在Objective-C的ARC模式中,


1
id obj1 = [[NSObject alloc] init];
这里虽然没有显示的声明为__strong,但是Objective-C默认声明的一个对象就为__strong,即:
1
id obj1 = [[NSObject alloc] init];
1
id __strong obj1 = [[NSObject alloc] init];

是等价的。

在强引用中,有时会出现循环引用的情况,这时就需要弱引用来帮忙(__weak)。

强引用持有对象,弱引用不持有对象。

强引用可以释放对象,但弱引用不可以,因为弱引用不持有对象,当弱引用指向一个强引用所持有的对象时,当强引用将对象释放掉后,弱引用会自动的被赋值为nil,即弱引用会自动的指向nil。


0 0