assign 赋值方式 不复制不保留,直接赋值 基本数据类型和本类不直接拥有的对象 对象应用strong 却用 assign 就会很容易崩
retain 赋值方式 将新值保留一份赋覆盖原值 引用计数加1 大部分对象可使用 相当于浅拷贝,指针复制
copy 赋值方式 将新值复制一份赋覆盖原值 字符串选择性使用.(另外附上 copy 和 strong 的区别 文章:简单来说,copy就是当属性变量名为不可变时,被赋值是进行了浅拷贝,作用相当于retain;为可变时,被赋值是进行了深拷贝,string一般建议用copy) copy到堆中,以便后用
readwrite 读写权限 生成getter和setter两个方法 变量可读取可修改
readonly 读写权限 只生成getter方法 变量只读不可修改
atomic 原子性原子操作 可以保留在多线程环境下,能安全的存取值
nonatomic 原子性非原子操作 不生成多线程同步内容
getter 存取方法自定义取方法
setter 存取方法自定义赋值方法
strong 强指针
weak 弱指针
ARC下:
strong的含义和retain相同,weak和assign相同,修饰完的属性变量用法也是完全没有改变,不过strong和weak只能修饰对象
注意: 用weak修饰UI控件时,removeFromSuperview 后会释放,而strong不会,但可以使控件=nil释放
推荐文章:iOS - 属性关键字的使用