前面说过了属性,而说了属性就不得不提到,点语法
在类内定义一个实例变量
{
NSInteger _age;
}
类外,这样调用:person.age = 10;
编译报错:Propert 'age' not found on object of type 'person *'
如果我们添加方法 :
- (void)setAge:(NSInteger)age; 编译便不会报错
类外我们继续调用:NSLog(@"age = %ld",person.age);
编译报错:Propert 'age' not found on object of type 'person *’
添加方法 - (NSInteger)age; 编译便不会报错
当编译遇到点语法时,编译器就会将点语法转为对应的setter和getter方法
在setter或者getter方法中使用点语法
- (void)setAge:(NSInteger)age
{
self.age = age; //等价于 [self setAge:age]; 进入死循环
}
在get方法中,return self.age;相当于是[self age];
网友评论