看板 MacDev 關於我們 聯絡資訊
其實在 Xcode 中 property 其實分為三個部分 一個是它的 setter 與 getter 和它所對應的全域變數 假設一個 property 設定如下 @property (nonatomic, retain) UIImage *image; 在 Xcode 4.5 會自動產生所對應的 setter、getter、與 _image 的全域變數 但是在之前的 Xcode 是必須手動建立的 它的全域變數是要在 interface 中宣告 UIImage *_image; setter 原本應該如下使用 - (void)setImage:(UIImage *)image { _image = [image retain]; } getter 也是一樣 - (UIImage *)image { return _image; } 其中 @synthesize 就是替代在 interface 中宣告的動作 所以通常會是建議 @synthesize image = _image; 的動作 不過這個在 Xcode 4.5 之後就自動產生了 說真的這點不知道是好還是壞阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.51.143.138
tentenlee:一定要做的事情 變自動產生 不是很好嗎... 06/16 11:06
自動產生的缺點是,久了就會忘了原本的功能與原理 ※ 編輯: darktt 來自: 110.25.86.91 (06/16 11:18)
uranusjr:知道的人還是知道, 自動產生底線 ivar 比以前會讓一知半 06/16 11:38
uranusjr:解的人寫出 @synthesize foo 然後 ivar property 混用的 06/16 11:39
uranusjr:狀況要好多了(個人觀點) 06/16 11:39
yuanruo:我覺得一開始就用ARC的人 很多東西也不知道... 06/16 12:46
steny138:我有問題的地方就是在 @synthesize image = _image; 06/17 09:02
steny138:不是已經預設image=_image 那怎麼不能用 image=XX 06/17 09:03