簡體   English   中英

使用iPhone SDK保留與分配NIB / XIB中的控件

[英]Retain vs Assign for controls inside NIB/XIB using the iPhone SDK

我正在使用Interface Builder構建我的rootViewController,它由我的應用程序委托保留。 我在此XIB中有一些控件,例如幾個UIButtons,一個UISlider等作為IBOutlets,已正確連接到Interface Builder中。

在XIB的代碼實現方面,我看到有人使用:


@interface RootViewController : UIViewController {
    IBOutlet UIButton *button1;
    IBOutlet UIButton *button2;
    ...
}

@property(nonatomic, assign) UIButton *button1;
@property(nonatomic, assign) UIButton *button2;

@end

他們為什么使用分配而不是保留? 我看到有些人甚至沒有使用assign屬性。

只要保留,只要rootViewController的XIB始終包含對它們的引用,使用保留是否毫無意義? 還是他們只是懶惰而沒有經歷保留,合成和取消分配的步驟? 在我看來,只要需要控件並且沒有取消分配viewController,保留引用就不會受到傷害,但是只是想知道XIB是否會在不需要的地方做一些不同的事情。

我已經閱讀了內存管理指南,順便說一句。

謝謝!

只要保留所有子視圖而不是保留所有子視圖,只要它們從該子視圖中保留一個子視圖,就不會有任何傷害。

當您將其從其父視圖中刪除並希望稍后在代碼中將其添加為子視圖時。 那不可能。 當您將其從超級刪除時,其保留計數可能會變為零。 那就是您使用保留的原因之一。 這樣,您的控制器對象將始終是視圖對象的所有者。

我想不到其他原因,您必須使用保留而不是分配。

我一直使用保留,我認為這是網點的最佳做法,這似乎是一種慣例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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