iOS -实例变量

不需要@synthesize语句

在某个版本之前,对应@property,在implementation中需要写对应的@synthesize语句,来合成access方法,不过在一次升级之后,现在已经不再需要了

不需要重复声明实例变量

实际上,@property声明的是属性,并不是实例变量。但是编译器会根据属性,自动生成实例变量,和对应的access方法。所以已经在interface里声明了@property,就不再需要在implementation里再声明实例变量了。

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

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

比如

@property NSString* name;

生成的实例变量名将是_name
所以要访问这个实例变量,就有2种方法,或者使用.操作符

NSString *n = self.name;

这等价于:

NSString *n = [self name]

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

NSString *n = _name;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值