@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,@synthesize可以省略。
1、atomic与nonatomic
atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题。
当一个变量声明为atomic时,意味着在多线程中只能有一个线程能对它进行访问
当一个变量声明为atomic时,该变量为线程安全型,但是会影响访问速度,
当一个变量声明为atomic时,在非ARC编译环境下,需要设置访问锁来保证对该变量进行正确的get/set
加了atomic,setter函数会变成下面这样: