2011-10-12 69 views
0

我讀過谷歌和蘋果的代碼指南,他們都沒有自己訪問實例變量。在方法實現中調用(getter和setter),即使他們已經爲該實例變量聲明瞭一個屬性。那是爲什麼?爲什麼不使用自我。在課堂上打電話

在我看來,使用自我。在類的方法實現內調用設置和獲取實例變量使管理者保留計數變得更容易。

是否有任何警告在課堂內使用getter和setter?

回答

1

這取決於。您應該始終在正常使用中使用訪問器。

但是,對於init和dealloc方法,您應該改用直接ivars來釋放和設置變量。這是因爲setter可能會產生在類初始化或釋放期間不好觸發的副作用。

在實踐中,使用訪問器作爲init的一部分可能不會導致問題。但是我看到了一些真正的世界崩潰,其中一個自定義setter不期望爲零,因此在dealloc中使用訪問器使應用程序崩潰。即使它沒有崩潰,它可能會做很多毫無意義的工作,因爲班級即將死亡。

相關問題