美文网首页
UI控件什么时候使用Weak和Strong

UI控件什么时候使用Weak和Strong

作者: HuangLinWang | 来源:发表于2016-12-12 23:43 被阅读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];

这个也不会有内存泄漏的问题.

相关文章

网友评论

      本文标题:UI控件什么时候使用Weak和Strong

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