2011-08-23 61 views
9

像杜朋,我一直宣稱即時變量(伊娃),然後@property在界面現在一會兒.h文件中。我應該繼續在自動引用計數(ARC)下使用iVar和@property(nonatomic,retain)加@synthesize嗎?

@interface MainGameViewController : UIViewController { 
    UserFactorsViewController *userFactorsViewController; 
    UITableView *myTableView; 
} 
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController; 
@property (nonatomic, retain) IBOutlet UITableView *myTableView; 

在自動引用計數下,我應該放棄iVar並全部使用@property嗎?我是否應該在財產中保留「保留」一詞?如果我爲iOS 4.3部署,我應該仍然使用ARC?

回答

10

不要覺得自己是杜朋,即使編譯器將增加對高德你,如果你不包括他們,很多人還宣稱他們(許多書的作者也一樣),以使代碼有點容易閱讀(更容易區分伊娃和財產)。

現在當創建一個屬性,蘋果希望你覺得在對象圖來看,這樣做「強」和「弱」屬性一些研究的屬性,而不是保留和釋放。

此外,iOS 4的是設定爲ARC的目標,所以你應該沒問題。但我相信如果你想支持iOS 3.0,你將不得不像以前一樣手動管理保留和發佈。

+0

謝謝。但是,在ARC下做什麼「正確」的方式呢?我是否應該擁有財產並讓其綜合處理剩下的事情?並且爲每個STRONG對象變量放置屬性(非原子)? – Ben

+2

'@屬性(非原子,強)UserFactorsViewController * userFactorsViewController;'' @財產(非原子,強)IBOutlet中的UITableView * myTableView;' – 5StringRyan

+0

太謝謝你了漢斯。欣賞它。 – Ben

相關問題