OC-快速调用对象的setter和getter方法----点语法
程序员文章站
2022-06-02 17:04:29
...
01).点语法
01>.作用
快速调用对象的setter和getter方法
02>.语法
对象 . 去掉下划线的属性名
03>.赋值
对象 . 去掉下划线的属性名 = 数据;
04>.取值
对象 . 去掉下划线的属性名
05>.使用注意
a.在getter 和 setter 方法中,慎用点语法,容易造成死循环
- (void)setAge:(NSInteger)age{
//如果我们定义的全局变量是age而不是_age的话
//不能用age = age进行赋值
//同样也不能使用self.age = age
//因为self.age等价于[self setAge:age]这样就会出现死循环了
//所以我们在定义全局变量的时候一般都会加上一个下划线以便区分
_age = age;
NSLog(@"setAge is Execute");
}
b.点语法的本质是调用setter和getter方法,如果没有相应的方法,则调用失败
int main()
{
//只要有返回值就是getter方法
Person *person1 = [[Person alloc] init ];
//此处的点语法调用的是setter方法
person1.name = @"jack";//等价于[person1 setName:@"jack"];
person1.age = 15;
//此处的点语法调用的getter方法
NSString *name = person1.name;//等价于NSString *name = [person1 name];
NSLog(@"name is %@",name);
}
c.点语法实在编译器编译的时候,准换为调用对应的getter和setter方法
方法名必须符合规范
d.点语法只能使用于set/get方法,如果没有对应的set/get方法的话,是不能使用.语法的
上一篇: 过多if-else重构
下一篇: ES6 Map类型