(1)readwrite 是可读可写特性;需要生成 getter 方法和 setter 方法时.
(2)readonly 是只读特性, 只会生成 getter 方法,不会生成 setter 方法,不希望属性在类外改变
(3)assign 是赋值特性, setter 方法将传入参数赋值给实例变量,传参仅在设置变量的时候
(4)return 表示持有特性, setter 方法将传入参数先保留,在复制,传入参数的 retaincount 会+1;
(5)copy 表示赋值特性, setter 方法将传入对象复制一份;复制一般在需要完全一份新的变量的时候
(6)nonatomic 是非原子操作,决定编译器生成的 setter getter 是否是原子操作, atomic 表示多线程安全,我们一般用 nonatomic