点语法


  1. 使用点语法类访问对象的属性。
  • 语法: 对象名.去掉下划线的属性;
p1.name = @"jack";//赋值
NSString *name = p1.namep;//取值
  1. 点语法的原理
  • 点语法不是直接赋值,而是点语法在编译器编译的时候,其实会将点语法转换为调用setter、getter的代码。
  1. 注意
  • 在getter和setter中慎用点语法,因为有可能会造成无限递归,而程序崩溃
  • 如果我们的setter方法和getter方法不符合规范,那么点语法就会出现问题
p1.name =@"jack";
//其实实际上是转换为如下
[p1 setName: @"jack"];

NSString *name =p1.name;
//同理
NSString *name=[p1 name];
  • 如果属性没有封装getter,setter是无法使用点语法的
学习