鑑於下面的屬性聲明,方法(A)的工作方式與方法(B)完全相同嗎?我只想檢查self.yellowViewController = yellcon_New;
是否會通過我的setter,以便舊對象得到釋放,並保留新對象。設置一個屬性與點或括號語法有區別嗎?
// INTERFACE
@property(nonatomic, retain) YellowViewController *yellowViewController;
// IMPLEMENTATION (A)
self.yellowViewController = yellcon_New;
// IMPLEMENTATION (B)
[self setYellowViewController:yellcon_New];
不需要@dynamic。如果實現setter方法,編譯器將不會生成setter。 – bbum 2010-02-05 16:11:36
...這很重要,因爲如果您需要自定義setter,則可以使用它繼續生成getter,反之亦然。爲了進行調試,可以快速地將日誌記錄添加到其中一個訪問器中,而不必更改太多的代碼。 – andyvn22 2010-02-06 15:02:16