美文网首页不懂的知识点
iOS面试题:简述 OC 中内存管理机制。与 retain 配对

iOS面试题:简述 OC 中内存管理机制。与 retain 配对

作者: iOS猿_员 | 来源:发表于2019-01-27 15:25 被阅读569次

    原文:iOS面试题大全

    OC 使用了一种叫做引用计数的机制来管理对象,如果对一个对象使
    用了 alloc、[Mutable]copy,retain,那么你必须使用相应的 realease
    或者 autorelease。也可以理解为自己生成的对象,自己持有。非自
    己生成的对象,自己也能持有。不在需要自己持有的对象时释放。非
    自 己 持 有 的 对 象 无 法 释 放 。 生 成 并 持 有 对 象
    <alloc,new,copy,mutableCopy 等>,持有对象<retain>,释放对象
    <release>,废弃对象<dealloc>。readwrite(默认):可读可写,表示既有
    getter 方法,也有 setter 方法。readonly:表示只有 getter 方法,没有
    setter 方法。nonatomic:不考虑线程安全。atomic(默认):线程操作
    安全。strong(默认) :ARC 下和 MRC 下 retain 一样,weak(ARC 下):
    和(MRC 下)assign 类似,区别是当 weak 指向的内存释放掉后自动置
    为 nil,防止野指针。
    unsafe_unretained 声明一个若引用,但不会自动置为 nil,可能会出
    现野指针。
    线程安全下的 setter 和 getter 方法:

    -(NSString*)value{
    @synchronized(self){
    return[[_valueretain]autorelease];
    }
    }
    -(void)setValue:(NSString*)aValue{
    @synchronized(self){
    [aValueretain];
    [_valuerelease];
    _value=aValue;
    }
    }
    

    相关文章

      网友评论

        本文标题:iOS面试题:简述 OC 中内存管理机制。与 retain 配对

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