美文网首页
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