2012-11-04 36 views

回答

0

這只是爲變量定義標準getter/setter方法的一種更方便的方法,因爲一遍又一遍地編寫簡單的標準getter和setter方法可能是一個真正的痛苦......而屬性提供了一種簡單的方法內存管理(如強大的,非原子的等等)。

0

他們做什麼

他們分別聲明和實現屬性訪問方法(getter和setter)。 @property聲明,@synthesize告訴編譯器爲聲明的方法發出自動生成的實現。

他們爲什麼比只使用 - (void)變量更好;和 - (void)變量{}?

因爲它們更短,所以更簡潔,使代碼更具可讀性。另外,他們本身沒有錯誤 - 如果你要編寫一堆訪問器方法,我相信你最終會錯過一些東西,並且你不可能因爲上帝的愛而知道一個神祕的段落故障來自何處。這不會發生在聲明的屬性上(所以它們被調用)。

一個小問題是舊的Objective-C編譯器不支持聲明的屬性。可能是這種情況(儘管幾乎沒有機會),總有一天你需要用一箇舊的編譯器編譯你的代碼,並且由於這種語法,這是不可能的。但是,這又不太可能發生。