2011-12-06 18 views
2

模板「MasterDetail」應用程序在DetailViewController.h中使用strong限定符編寫IBOutlet屬性。在斯坦福CS193教訓ARC中的IBOutlet和生命週期限定符

@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel; 

雖然從iTunesU(第2課時間14:30),他們設置IBOutletweak話說標籤已經具有很強的指向它的窗口中創建。

現在,我的問題是我們如何聲明像標籤和按鈕IBOutlet存儲?使用弱點是否正確?如果我在iOS4上可以使用unsafe_unretained嗎?

編輯-----

我找到答案有關強或弱...主要規則是:

  • 使用strong爲廈門國際銀行的頂級元素
  • 使用weak爲子元素像標籤按鈕等。

您可以檢查documentation
但我仍然找不到iOS 4的東西4

回答

4

那麼,這與MRC中的情況基本相同。

您的IBOutlets通常位於控制器的視圖層次結構中,並由其父視圖隱式保留。您可以使用assign(MRC)或weakunsafe_unretained(ARC)。在所有情況下,從視圖層次結構中刪除對象時,指針都會失效。 唯一的區別是,在MRC和ARC 4.0上,指針不會自動設置爲零。它仍然包含一個內存地址,但地址無效。 無論如何,你不應該再使用指針了。

無論何時你想要使用該對象,即使它不是視圖層次結構的一部分(通常是xib中的每個頂級元素,或者當你動態地從層次結構中刪除視圖並且不希望它們失效時),您使用retainstrong說明符。

請注意,許多示例對每個IBOutlets都使用strong,這不是錯誤。這只是沒有必要。