2012-06-21 44 views
-1

可能重複:
@property @synthesize關於@property和@synthesize

嗨,我在這麼多的應用程序創建發現我們有@property後宣佈@synthsize還,但我想知道

NSArray *_failedBankInfos; 

@property (nonatomic, retain) NSArray *failedBankInfos; 
@synthesize failedBankInfos = _failedBankInfos; 

@property (nonatomic, retain) NSArray *_failedBankInfos; 
@synthesize _failedBankInfos; 

任何人都可以解釋這一點。

+2

請做搜索有很多關於這個話題的問題。 http://stackoverflow.com/questions/2032826/property-synthesize – iNoob

回答

3

@synthesize將映射與伊娃即宣告將創建getter和setter方法,而無需開發人員明確實現存取方法和其中的內存管理特性(如每裏面@property如參數:retain, copy )。 所以,當我們使用*_iVar(這應該是一個私人伊娃按照命名約定),我們希望有存取方法看起來像那些沒有「_」,例如:[aClass getIVar]而不是[aClass get_iVar]我們映射_iVar@synthesize iVar=_iVar的財產@property(retain/copy/assign,atomic/nonatomic) NSObject *iVar;

PS:也可參考自動參考iOS中> = 5.0計數在Ray's

+0

嗨ishak感謝您的答覆。這裏可以請解釋什麼時候我們必須使用_和什麼時候不需要使用它。 – GNJ

+0

嘿,你好,歡迎光臨! 它只是一個命名約定,表明iVar應該是私有的,即對其他類不可見(在OOP中稱爲封裝),所以如果我們在Class的.m文件中聲明相應的@property而不是.h文件,以便類本身可以使用該屬性,而其他類不能。 –

+0

好,謝謝很多ishak – GNJ

相關問題