@property和点语法都是编译器特性,是编译器帮我们做了些事情,提高开发人员的效率。
@property(nonatomic ,assign)int age;
nonatomic是非线程安全的,性能高,开发中一般都用这个;assign用于基本数据类型. 这句代码编译器会自动生成带下划线的成员变_age以及age 的setter和getter方法。
而点语法,例如在Person类中使用
- int main(int argc, char * argv[])
- {
- Person *p = [[Person alloc] init];
- p.age = 10; // 这个代码编译器会转成setter方法 [p setAge:10];
- NSLog(@"%d",p.age);// 这里的p.age 编译器会转成getter方法 [p age];
- }
复制代码 |