作者darktt (小朱)
看板MacDev
标题Re: [问题] Property的关系
时间Sun Jun 16 10:11:52 2013
其实在 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
1F:推 tentenlee:一定要做的事情 变自动产生 不是很好吗... 06/16 11:06
自动产生的缺点是,久了就会忘了原本的功能与原理
※ 编辑: darktt 来自: 110.25.86.91 (06/16 11:18)
2F:→ uranusjr:知道的人还是知道, 自动产生底线 ivar 比以前会让一知半 06/16 11:38
3F:→ uranusjr:解的人写出 @synthesize foo 然後 ivar property 混用的 06/16 11:39
4F:→ uranusjr:状况要好多了(个人观点) 06/16 11:39
5F:推 yuanruo:我觉得一开始就用ARC的人 很多东西也不知道... 06/16 12:46
6F:推 steny138:我有问题的地方就是在 @synthesize image = _image; 06/17 09:02
7F:→ steny138:不是已经预设image=_image 那怎麽不能用 image=XX 06/17 09:03