美文网首页
Objective-C属性

Objective-C属性

作者: _我和你一样 | 来源:发表于2017-12-08 18:14 被阅读0次

    Objective-C属性修饰符

    Objective-C 2.0引入了新的语法以声明变量为属性,并包含一可选定义以配置访问方法的生成。

    属性总是为公共的,其目的为提供外部类访问类的内部变量的方法。

    • 读写属性:readonly只读 readwrite读写(默认)
    • 存储属性: assign,copy,retain 简单的赋值、复制、增加引用计数
    • 原子性:atomic原子的,nonatomic非原子的避免产生锁

    strong和weak是ARC带出来的关键词

    strong 增加引用计数,weak不增加引用计数。

    weak和assign的区别:weak地址被释放时自动设置为nil,而assign则不会主动设置为nil,有可能会造成野指针。

    assign通常用于普通类型属性

    像delegate属性建议用weak修饰而不是assign。

    strong和retain的区别:

    他俩都是强引用,除了某些情况下不一样,其他的时候也是可以通用的。

    在修饰block属性的时候,相信大家都知道要用copy,如果不copy的话,他的生命周期会随着函数的结束而结束,copy之后会放在堆里面,延长block的生命周期。

    strong在修饰block的时候就相当于copy,而retain修饰栈block的时候就相当于assign,这样block会出现提前被释放掉的危险。

    @synthesize关键字 表示属性的属性会自动产生一对访问方法。

    @dynamic关键字 表示访问方法会由程序员手工提供。

    相关文章

      网友评论

          本文标题:Objective-C属性

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