美文网首页
@proprety 属性的使用

@proprety 属性的使用

作者: 呜啦啦啦拉拉 | 来源:发表于2016-08-16 23:52 被阅读43次

    @proprety是iOS中自动生成成员变量的get和set方法。
    它有几种属性

    读写属性:readonly,readwrite
    在自动引用计数下使用的属性:strong,weak,copy
    在非自动引用计数下使用的属性:assign,retain,copy
    原子特性:nonatomic,atomic
    

    读写特性指的是该对象是可读可写的还是可读的:

    • readonly表示只生成get方法。
    • readwrite表示生成get和set方法。默认使用readwrite

    在自动引用计数下使用的特性:

    • weak表示的是弱引用,即一旦没有其他指针持有该对象。该对象立即释放并将指针设置为nil。通过Objective-C运行时源码可知在每一个被week指针指向的对象中都有一个数组存放week指针。当该对象释放后会依次将指针指向置nil,而保证程序不崩溃。
    • strong为强引用,使用该关键字会引用对象。当该指针释放后对象的引用计数会减一。

    在非自动引用计数下使用的特性:

    • assign表示不持有对象,它与week不同的地方是assign不会自动在对象释放时将指针置nil,而会形成野指针。
    • retain表示持有对象。
    • copy表示不持有对象并复制该对象的值,创建一个新的对象并持有他。

    原子特性:

    • atomic表示在多线程编程中对该对象加原子锁。
    • nonatomic表示在多线程编程中不加原子锁。

    相关文章

      网友评论

          本文标题:@proprety 属性的使用

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