oc中的点语法

1.使用自定义的方法创建get/ set方法  (不实用点语法访问成员变量)

Person.h 文件 :  

#import <Foundation/Foundation>

@interface Person:NSObject

{

 int _age;       //使用age声明成员,方式self.age访问成员变量的误解

}

- (void)setAge:(int)newAge;

-(int)age;     //使用age成员的名称,命名get方法

@end


Person.m文件

#import “Person.h”

@implementation Person

- (void)setAge:(int)newAge

{

_age=newAge;

}

- (void)age

{

return _age;

}

@end

main.m 文件

#import <Foundation/Foundation>

#import "Person.h"

int main(int argc, const char *argv[])

{

Person *person=[[Person alloc]init];   //有alloc 必须有release

[person setAge:10];

int age=[person age];

[person release];

return 0;

}


2.使用点语法访问成员

2.1 在OC中点语法不是访问成员变量,而是隐式调用get / set方法  

person.age=10等效于[person setAge:10];

int age=person.age等效于 [person age];

Person *person=[[Person alloc]init];

//使用点语法访问成员和设置成员变量

person.age=10;

int age=person.age;

NSLog(@"age is %d",age);

通过在get / set方法中打印数据(或设置断点的方式 ), 可以观察到方法的调用 。  


- (void)setAge:(int)newAge

{

NSLog(@"调用了setAge方法:%d",newAge);

age=newAge;

}

- (void)age

{

NSLog(@"调用了age方法:%d",age);

return age;

}

运行代码的输出为 :  

2015-02-29 23:23:59.946  点语法 [2314:303]  调用了 setAge 方法: 10  

2015-02-29 23:23:59.967  点语法 [2314:303]  调用了 age 方法: 10  

2015-02-29 23:23:59.968  点语法 [2314:303] age is 10  

注意,OC中,为了防止self.age误认为是访问成员变量age,  所有的成员变量,推荐使用_age 。
总结:掌握oc中的点使用的规则,掌握常规oc中set get的写法及调用方法,不要和点规则混淆。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值