Re: [問題] Property的關係

看板MacDev作者 (小朱)時間12年前 (2013/06/16 10:11), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串2/3 (看更多)
其實在 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

06/16 11:06, , 1F
一定要做的事情 變自動產生 不是很好嗎...
06/16 11:06, 1F
自動產生的缺點是,久了就會忘了原本的功能與原理 ※ 編輯: darktt 來自: 110.25.86.91 (06/16 11:18)

06/16 11:38, , 2F
知道的人還是知道, 自動產生底線 ivar 比以前會讓一知半
06/16 11:38, 2F

06/16 11:39, , 3F
解的人寫出 @synthesize foo 然後 ivar property 混用的
06/16 11:39, 3F

06/16 11:39, , 4F
狀況要好多了(個人觀點)
06/16 11:39, 4F

06/16 12:46, , 5F
我覺得一開始就用ARC的人 很多東西也不知道...
06/16 12:46, 5F

06/17 09:02, , 6F
我有問題的地方就是在 @synthesize image = _image;
06/17 09:02, 6F

06/17 09:03, , 7F
不是已經預設image=_image 那怎麼不能用 image=XX
06/17 09:03, 7F
文章代碼(AID): #1HlHxgFV (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1HlHxgFV (MacDev)