objective-c中实例变量的写法(三)

2014-02-08 12:43:24 · 作者: · 浏览: 251

 

  访问属性

  访问属性也有语法糖,即。操作符。如果不使用@property,通过access方法访问实例变量,需要用标准的调用方法操作符[]:

  [xxx userName];

  [xxx setUserName:@"abc"];

  但是如果用了@property,就可以使用。操作符来存取:

  xxx.userName = "abc";

  NSString *name = xxx.userName;

  自动生成的实例变量命名规则

  要记住,属性不是实例变量,而是根据属性会生成实例变量(和对应的access方法)。所以,属性名叫name,而实例变量的名字并不是name.在我这个环境ios7+xcode5,命名规则似乎是在属性前面加上_

  比如

  @property NSString* name;

  生成的实例变量名将是_name

  所以要访问这个实例变量,就有2种方法,或者使用。操作符

  NSString *n = self.name;

  这等价于:

  NSString *n = [self name]

  或者,直接使用实例变量名:

  NSString *n = _name;

  但是,由于文档中并没有明确说明这个命名规则,所以后者类似于潜规则。如果版本升级后,命名规则改变了,代码就需要重新编译。因此,使用。操作符,是更保险的做法。命名规则,只要知道就可以了