ios- object-c(oc)内存管理机制--属性关键字

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 - 属性关键字的使用

你可能感兴趣的:(ios- object-c(oc)内存管理机制--属性关键字)