IOS面试之手动UI的View成员,应该用weak还是strong

UI控件默认用weak,根源还是苹果希望只有这些UI控件的父View来强引他们,而Viewcontroller只需要强引用Viewcontroller.view成员,既可以间接持有所有UI控件。除非你特殊操作view成员,Viewcontroller.view的生命期和Viewcontroller是一样的。

所以在这种情况下,其实UIk控件是不是weak关系不大。是weak时,他的引用计数是1,持有它的是superview;当时strong时,它的引用计数是2,持有它的是superview和strong,不会有循环引用。

那么回到题目,应该用weak呢还是strong?个人觉得应该用strong,因为用weak没有特殊优势,而且还会有特殊的维护开销,如果没有别的特殊理由,还是用strong.
当然,如果你非要用weak也可以,只不过注意赋值前,先把这个对象用addsubview加到父view上,否则可能刚刚建完,它就被释放了。

你可能感兴趣的:(IOS面试之手动UI的View成员,应该用weak还是strong)