![](/img/trans.png)
[英]Creating views programmatically Strong Vs Weak subviews in controller
[英]iOS Strong vs Weak UI programmatically creation
在我的項目中,我使用情節提要,當我訪問UI元素時,我創建了一個屬性並將其鏈接。 此屬性很弱。 據我了解,該屬性可能很弱,因為它已經添加到視圖中,並且視圖保留了它。
在另一個項目中,我不使用情節提要。 現在,我不確定如何定義UI元素。 我認為情況1都可以做到
@interface LoginView
@property (strong, nonatomic) UIButton *login
@end
- (instancetype) init {
if (self == [super init]) {
_login = [UIButton buttonWithType:UIButtonTypeCustom];
[self addSubview:_login];
[self setNeedsUpdateConstraints];
}
return self;
}
情況2:
@interface LoginView
@property (weak, nonatomic) UIButton *login //<<notice weak
@end
- (instancetype) init {
if (self == [super init]) {
UIButton login = [UIButton buttonWithType:UIButtonTypeCustom];
[self addSubview:login];
_login = login
[self setNeedsUpdateConstraints];
}
return self;
}
我的問題是:“可以同時使用兩種情況嗎?如果可以的話,有沒有更好的選擇?”
自己的想法:我認為情況二是首選,因為它不會產生第二個強指針?
您仍然可以使用弱引用,因為視圖超級視圖將具有強引用。
兩者都可以正常工作。
就我個人而言,我更喜歡堅強,因此我不會依賴其他觀點來保留某些東西。
與需要跟蹤並自動清零的弱引用相比,強也具有較少的開銷(不是,您會注意到此時差)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.