美文网首页selector
Property属性关键字

Property属性关键字

作者: struggle3g | 来源:发表于2018-01-28 03:21 被阅读5次

    atomic            

    nonatomic         

    strong                   

    retain                  

    weak                     

    assign                  

    copy                       

    readonly                 

    readwrite                

    unafe_unretained       

    atomic

        原子类型,属性的property默认关键字为atomic原子性,提供线程安全的。

        优点:OC中是一个同步锁机制的线程安全策略,为了防止在多线程的环境下:当两个线程去访问一个属性,当线程A先访问这个属性,并修改了变化,没有写入到属性,线程b就已经放了这个属性,并获取到了没有改变之前的值,最终造成数据错误。

        缺点:这种机制是耗费系统资源的,并且效率上也有所减少。

    nonatomic

        非原子类型,

        优点:提高性能,消耗更少的资源

        缺点:线程不安全,两个线程同时访问,最终造成上述数据错误。

    strong

        创建对象引用计数+1,每次被引用引用计数+1,release引用计数-1,当引用计数为0时dealloc函数调用收回内存。

    retain

        对其他NSObject和其子类对参数进行release旧值,再retain新值         指定retain会在赋值时唤醒传入值的retain消息。此属性只能用于Objective-C对象类型,不能用于基础数据类型跟 C数据类型。

    weak 

        不会增加对象引用计数,也不会持有对象,因此不能决定是释放该对象,他比assign多了一个功能,就是当持有该对象的对象消失后自动将指针置nil

    assign    

        简单的赋值操作,不会改变引用计数,适用于基础数据类型(NSUInteger CGFloat)等和C数据类型(int float char long)。

    copy

         创建一个引用计数为1的一个对象,释放旧对象,然后赋值,此属性只对那些实行了NSCopying协议的对象类型有效。copy方法默认是复制该对象的不可变副本。

    readonly

        此属性只能读

    readwrite

        此属性读写,默认属性

    unafe_unretained

        跟weak一样是一个弱引用,引用计数为0时,不会自动置nil

    相关文章

      网友评论

        本文标题:Property属性关键字

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