簡體   English   中英

iOS Strong vs Weak UI以編程方式創建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM