@property和@synthesize可以自动生成某个类成员变量的存取方法
@property用在 .h 头文件中用作声明,@synthesize用在.m 文件中用于实现。
声明时可以指定成员变量的属性,在括号中指明,包括:
readwrite:这个属性是默认的情况,会自动为你生成存取器。
assign:这个属性一般用来处理基础类型,比如int、float等等,如果你声明的属性是基础类型的话,assign是默认的,你可以不加这个属性。
readonly:只生成getter不会有setter方法。
copy:这个会自动生成你赋值对象的克隆,相当于在内存中新生成了该对象的副本,这样一来,改变赋值对象就不会改变你声明的这个成员变量了。
retain:会自动retain赋值对象。
atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题。
nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率。