点语法的出现,是为了简化getter、setter方法的调用。
若已经定义属性,或者自己写的实例变量的getter、setter方法,则在调用的时候,可以直接用变量直接用点语法点属性变量名或者实例变量名。
当编译器检测到点语法要赋值时,就会去调setter方法,当编译器检测检测到点语法要取值时,就会去调getter方法。
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p1 = [[Person alloc]init]; [p1 setAge:18]; //点语法是为了简化调用getter,setter方法 //当编译器检测到要赋值时,调用setter方法。 //当编译器检测到要取值时,调用getter方法。 p1.age = 19;//调的是setter方法。 NSInteger i = p1.age;//调用的是getter [p1 age]; NSLog(@"%ld",[p1 age]); [p1 release]; } return 0; } |