作者yeah200077 (爹卡路洽)
看板MacDev
标题[问题] 这种写法的意义?
时间Tue May 1 12:18:28 2012
常常看别人的Code会看到这种写法出现
h档:
NSString* _str;
property(nonatomic,copy) NSString* str;
m档:
@synthesize _str = str;
[_str release];
我想问的为什麽要另外宣告str assign给 _str有什麽意义?
我直接写成
property(nonatomic,copy) NSString* _str;
@synthesize _str;
好像也行,不懂为什麽会这样写
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.176.185
1F:推 tentenlee:我一开始也不解 之後写久了会发现那2个东西是不太依样的 05/01 12:51
2F:→ tentenlee:久了也会去习惯写底线去分辨它们 只是我底线是放在等号 05/01 12:52
3F:→ tentenlee:後面的 05/01 12:52
4F:→ wasihero:上面那个可以直接 str.xxx=xx 下面的要 self._str.xx=xx 05/02 00:11
5F:推 aecho:简单说,是命名惯例。加底线是为了区分出这是local var。 05/09 09:38
6F:推 d71941:可以避免ivar跟accessor混用,下面的如果在setter中,本来要 05/11 02:10
7F:→ d71941:打_str=xx,如果打成self._str=xx,就会造成无穷递回 05/11 02:12
8F:→ d71941:或者是getter或setter里有做某些处理,但是不小心用成_str, 05/11 02:17
9F:→ d71941:就会漏掉那些处理直接动到ivar,可能会造成bug 05/11 02:18