美文网首页
@property中有哪些属性关键字?/ @property 后

@property中有哪些属性关键字?/ @property 后

作者: qwasd116 | 来源:发表于2016-09-04 09:09 被阅读438次

    属性可以拥有的特质分为四类:
    1.原子性---- nonatomic
    2.读/写属性 ---- readwrite(读写) readonly(只读)
    3.内存管理--- strong weak assign copy retain unsafe_unretained
    4.方法名--- getter<name> setter<name>

    readwrite: 产生setter\getter方法
    readonly: 只产生简单的getter,没有setter。
    assign: 默认类型,setter方法直接赋值,而不进行retain操作 ;用于值类型,如int、float、double和NSInteger,CGFloat等表示单纯的复制。还包括不存在所有权关系的对象,比如常见的delegate。
    retain: setter方法对参数进行release旧值,再retain新值。在setter方法中,需要对传入的对象进行引用计数加1的操作。简单来说,就是对传入的对象拥有所有权,只要对该对象拥有所有权,该对象就不会被释放。
    copy: setter方法进行Copy操作,与retain一样;与strong类似,但区别在于实例变量是对传入对象的副本拥有所有权,而非对象本身。
    weak:在setter方法中,需要对传入的对象不进行引用计数加1的操作。简单来说,就是对传入的对象没有所有权,当该对象引用计数为0时,即该对象被释放后,用weak声明的实例变量指向nil,即实例变量的值为0。delegate outle;
    strong:表示实例变量对传入的对象要有所有权关系,即强引用。strong跟retain的意思相同并产生相同的代码,但是语意上更好更能体现对象的关系。
    nonatomic: 禁止多线程,变量保护,提高性能

    相关文章

      网友评论

          本文标题:@property中有哪些属性关键字?/ @property 后

          本文链接:https://www.haomeiwen.com/subject/ptycettx.html