A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 562413895@qq.co 中级黑马   /  2015-7-27 11:23  /  574 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、点语法: 对象.属性名
点语法不是直接访问实例变量,Xcode看到点语法后,会帮我们自动替换成调用set方法和get方法
例:
注意:点语法到底是替换成get方法还是set方法,一般取决于点语法出现在等号左侧还是右侧(是设置值还是取值)
若点语法出现在等号右侧时,则替换get方法;若点语法出现在等号左侧时,则替换set方法。
Person *p=[Person new];
int a=p.age;//调用get方法
NSString  *s=p.name;//调用get方法
p.age=25;//调用set方法
p.name=@"junjun";//调用set方法
2、点语法的陷阱
1)、用self和点语法连用,会造成死循环。
例:
-(void)setAge:(int)age{
     self.age=age;
}
这样会造成死循环,上述相当于:
-(void)setAge:(int)age{
     [self setAge:age];
}
2)、在get方法中,使用self和点语法也会造成死循环
例:return self.age;相当于是[self age];//造成死循环
3、点语法的注意事项
点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。切记:点语法时转换成相应的set和get方法,若没有set和get方法,则不能使用点语法。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马