@property 与 @synthesize 是 OC2.0之后新添加的特性 自动生成类成员变量的setter与getter方法 减少代码量 去除冗余代码
@property(attribute) ()中attribute 可填写属性包括:atomic(默认),nonatomic(与atomic相反),readwrite(默认), readonly, retain, assign, weak,strong, copy。
atomic:意思是原子的,控制线程对变量的访问,防止多线程同时操作一个变量。是线程安全的,但相对较慢,使用较少。
nonatomic:表示非原子的,可被多个线程访问,不能保证多线程情况下的安全性,但是常用。
对访问器的控制:
readwrite:默认,可读写,包含了setter与getter
readonly:只读,包含getter
对内存的管理上:
assign(默认):用于值类型
retain:表示实例变量对传入操作的所有权,具体体现在setter方法中
strong:表示实利变量对传入参数的所有权关系。即强引用
weak:weak在对象被回收之后自动设置为nil
copy:copy为是实例变量保存副本
使用 @property int no :生成的成员变量是私有的