weak使用注意

2021-07-03 14:57:35 字數 839 閱讀 2225

一些控制項作為屬性使用weak修飾的時候:

@inte***ce zxqtableviewcell ()

@property (nonatomic, weak) uiimageview *icon;

@property (nonatomic, weak) uilabel *name;

@property (nonatomic, weak) uiimageview *vipimg;

@property (nonatomic, weak) uilabel *text;

@property (nonatomic, weak) uiimageview *picture;

@property (nonatomic, retain) nsmutablearray *array;

@end

如果直接拿來使用:

_icon = [[uiimageview alloc] initwithframe:cgrectmake(5, 5, 50, 50)];

[self.contentview addsubview:_icon];

這樣是沒有作用的。

原因是weak修飾的icon會在alloc、init之後立馬釋放掉(這與arc有關)

所以解決辦法是:

uiimageview *icon = [[uiimageview alloc] initwithframe:cgrectmake(5, 5, 50, 50)];

[self.contentview addsubview:icon];

self.icon = icon;

iOS strong 與weak何時使用

如果乙個物件在某段時間中反覆載入,而你又不希望每次載入都要重新alloc 的話,那就strong,strong 保證對此物件保持乙個強引用,對於這個物件,只要有1個strong引用的話,那它就不會釋放,當然多個strong同時作用於它也不會釋放。如果乙個物件在某段時間只會載入一次,並且載入之後確定不...

swift unowned和weak的使用

通常的解釋是,考慮到物件的生命週期,您應該在unowned和weak之間進行選擇,但有時您可能仍然懷疑應該實際使用哪乙個,並且想知道unowned和weak哪乙個更好。眾所周知,swift利用良好的舊arc 自動引用計數 來管理記憶體,因此,正如我們習慣使用objective c一樣,我們必須通過明...

iOS 弱引用weak的使用

oc開發過程中,我們經常會使用到弱引用和強引用 我們為什麼要使用弱引用呢?要想知道這個我們需要weak的原理。原理 runtime維護了乙個weak表,其實weak是乙個hash 雜湊 表,其中key表示指向物件的指標,value是乙個陣列,裡面儲存的weak指標的位址陣列,當我們使用 weak的時...