美文网首页
iOS - xib跟storyboard拖得控件一般为 weak

iOS - xib跟storyboard拖得控件一般为 weak

作者: ShIwEn9 | 来源:发表于2020-02-27 23:47 被阅读0次

    首先有一点,在OC中,如果对象没有强引用,就会被自动释放,那么为什么控件还可以设为weak?

    从storyboard或者xib上创建控件,在控件放在view上的时候,已经形成了如下的引用关系,以UIButton为例:
    UIViewController->UIView->subViews->UIButton
    然后你为这个UIButton声明一个weak属性

    @property (weak, nonatomic) IBOutlet UILabel *noLabel;
    
    image.png

    当我们把xib/sb的File’s owner设置为view时,即xib/sb的拥有者是view,所以IBOutlet的属性一般设置为weak,因为它已经被view引用了。除非view移除IBOutlet的属性或view本身释放,否则IBOutlet的属性也不会被释放。

    当我们把IBOutlet的属性设置为strong时,那么当IBOutlet属性所持有的view释放时,由于IBOutlet属性被强引用,会导致无法释放。

    相关文章

      网友评论

          本文标题:iOS - xib跟storyboard拖得控件一般为 weak

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