无标题文章

简述OC中内存管理机制

管理机制:是使用一种叫做引用计数的机制来管理内存中的对象.OC中每个对象都对应着自己的引用计数,一次alloc对应一次release,一次retain也对应一次release,当对象的引用计数值为0时,对象会释放自己所占用的内存

readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak等属性的作用

readwrite:同时有getter和setter方法(默认)  readonly:只有getter,没有setter方法nonatomic:不考虑线程安全           atomic:线程操作安全(默认)

atomic和nonatomic的区别:

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作,其中1在多线程环境下,原子操作是必要的,否则有可能引起错误的结果,建议使用atomic;2在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。指出访问器不是原子操作,而默认地,访问器是原子操作。这也就是说,在多线程环境下,解析的访问器提供一个对属性的安全访问,从获取器得到的返回值或者通过设置器设置的值可以一次完成,即便是别的线程也正在对其进行访问。如果你不指定 nonatomic ,在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【2017年最新】☞ iOS面试题及答案 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经...
    紫色冰雨阅读 3,757评论 0 1
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,820评论 0 9
  • 1、@property 后面可以有哪些修饰符? 1.读写性修饰符:readwrite | readonly rea...
    烟雨平生花飞舞阅读 3,097评论 0 3
  • [※]@property中有哪些属性关键字? 有3类。ARC下默认是(atomic, assign, readwr...
    Icyjade_White阅读 2,118评论 0 1
  • 1.读写性修饰符:readwrite | readonlyreadwrite:表明这个属性是可读可写的,系统为我们...
    俊月阅读 1,423评论 0 0