UI控件什么时候使用Weak和Strong
2019-06-21 本文已影响0人
加盐白咖啡
UI控件使用weak还是Strong
XIB OR StoryBoard创建控件时
- 使用 Xib 或者 StoryBoard 的时候使用weak修饰控件,是因为当控件拖到控制器中时,控制器对控件就有了一个强引用.如果此时对属性控件使用Strong修饰就会使该控件的引用计数器变为2,当控制器释放的时候,控件依旧可以被释放,不会产生内存泄漏问题.
- weak的底层实现
weak(可以替换strong) 本质是让_car指针变为一个弱指针(循环引用才会使用!)
-(void)setCar:(LWCar*)car{
__weak _car = car;//弱指针
}
纯代码创建控件时
- 使用纯代码的时候使用Strong,Strong的本质只是赋值(ARC)
- Strong的底层实现
-(void)setCar:(LWCar*)car{
_car = car;
}
@property(nonatomic,strong)UILabel *label;
UILabel *label = [[UILabel alloc] init];
self.label = label;
[self.view addSubview: label]