美文网首页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

相关文章

  • iOS开发---属性关键字详解

    iOS开发—属性关键字详解 @Property 什么是属性? 属性(property)是Objective-C的一...

  • 2017年iOS面试题 总结 含答案(一)

    1、@property中有哪些属性关键字? 答:@property中我们经常使用的关键字有strong,weak,...

  • 深入浅出Objective-C笔记(十一)

    属性 (Property) 不使用属性的情况 使用属性的情况   在使用property这个关键字声明一条属性的时...

  • iOS 属性

    1.@property 属性 在我们声明property这个关键字的时候例如: @property (nonato...

  • Vickate_iOS Checklist

    [※]@property中有哪些属性关键字? 原子属性 atomic 和 nonatomic...

  • 18.@property中有哪些属性关键字?/ @propert

    @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符? 属性可以拥有的特质分为四类:...

  • 临时仓库

    @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符? nonatomic atom...

  • OC面试CheckList

    @property中有哪些属性关键字? @property和@synthesize是成对出现的,可以自动生成某个类...

  • 面试题

    1.@property 后面可以有哪些修饰符?/@property中有哪些属性关键字?属性可以拥有的特质分为四类:...

  • iOS checklist

    [※]@property中有哪些属性关键字?[※]weak属性需要在dealloc中置nil么?[※※]@synt...

网友评论

    本文标题:Property属性关键字

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