之前我介绍了set和get方法,但在实际操作时,我们会发现重复的代码量太大,如果有几十个成员变量要声明,那么就要对应有几十个set和get方法,为了免去手工书写set和get方法繁琐的代码,人民的英雄@property应运而生。
@property是编译器的指令,那么什么是编译器的指令呢?其实就是去告诉编译器要做什么啦~
@property 告诉编译声明实现set、get方法
这里出现了陌生的标识符
我们简单的介绍一下
nonatomic 代表着线路安全
在手机还只有512M内存时,如果对属性加锁,那么手机运行速度就会变得非常慢,所以对属性一般都是不加锁的,这样的速度相对快很多,这个习惯延续到了今天。
strong和weak 代表内存管理。
直接赋值的如int double等,直接写成
@property (nonatomic)int age;
而对象(字符串)要用strong作为参数。
这样是不是方便很多了呢?
其实在xcode早期版本,@property只是声明set和get方法,实现它们还需要另一个指令@synthesize
但是@synthesize 已经消失在滚滚oc长河当中,当做了解就好。