美文网首页
简述OC中内存管理机制

简述OC中内存管理机制

作者: Zhui_Do | 来源:发表于2017-03-30 13:40 被阅读13次

简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic 、atomic、strong、weak属性的作用?并区别strong(强引用)、 weak(弱引用)?什么情况使用copy,assign,和retain?
管理机制:使用了一种叫做引用计数的机制来管理内存中的对象。OC中每个对象都对应着他们自己的引用计数,引用计数可以理解为一个整数计数器,当使用alloc方法创建对象的时候,持有计数会自动设置为1。当你向一个对象发送retain消息 时,持有计数数值会增加1。相反,当你像一个对象发送release消息时,持有计数数值会减小1。当对象的持有计数变为0的时候,对象会释放自己所占用的内存。
retain(引用计数加1)->release(引用计数减1)
alloc(申请内存空间)->dealloc(释放内存空间)
readwrite: 表示既有getter,也有setter (默认)
readonly: 表示只有getter,没有setter
nonatomic:不考虑线程安全
atomic:线程操作安全 (默认)
线程安全情况下的setter和getter:

  • (NSString) value {
    @synchronized(self) {
    return [[_value retain] autorelease];
    }}
    (void) setValue:(NSString
    )aValue {
    @synchronized(self) {
    [aValue retain];
    [_value release];
    _value = aValue;
    } }
    retain: release旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
    assign: 简单赋值,不更改索引计数 (默认)
    copy: 其实是建立了一个相同的对象,地址不同(retain:指针拷贝 copy:内容拷贝)
    strong:(ARC下的)和(MRC)retain一样 (默认)
    weak:(ARC下的)和(MRC)assign一样, weak当指向的内存释放掉后自动nil化,防止野指针
    unsafe_unretained 声明一个弱应用,但是不会自动nil化,也就是说,如果所指向的内存区域被释放了,这个指针就是一个野指针了。autoreleasing 用来修饰一个函数的参数,这个参数会在函数返回的时候被自动释放。

相关文章

  • 无标题文章

    简述OC中内存管理机制 管理机制:是使用一种叫做引用计数的机制来管理内存中的对象.OC中每个对象都对应着自己的引用...

  • iOS面试题-第一页

    1.简述OC中内存管理机制. 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存...

  • iOS面试 | 基础知识 | <1>

    1.简述OC中内存管理机制 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存,...

  • 内存管理

    内存管理 简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与a...

  • 面试题(1)[内存,线程]

    简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配...

  • 简述OC中内存管理机制

    简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配...

  • iOS面试题-酷狗面试

    简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配...

  • IOS面试(基础问题)

    1、简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与allo...

  • iOS面试题汇总

    1.简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与allo...

  • iOS_2016最新版面试题(附答案)

    每天四道题,让精彩填满生活... 1、简述OC中内存管理机制。与retain配对使用的方法是dealloc还是re...

网友评论

      本文标题:简述OC中内存管理机制

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