ARC MRC

作者: iOS学末 | 来源:发表于2016-07-15 16:36 被阅读19次

    内存的手动管理(MRC):手动引用计数器管理,申请到某一块内存,在使用之后,要手动释放;未释放内存,会造成内存的浪费,俗称内存泄露;调用该对象时,要做retain操作,使用完成后要release,最后还要重写dealloc方法,对该类的所有对象做释放,所以在mrc的代码会有autorelease,retain,release等词语)

    内存的自动管理(ARC iOS5之后开始使用):自动引用计数管理,内存的申请,使用和释放过程都交给系统自动实现;不允许出现autorelease,retain,release等词语)

    引用计数器

    1.和内存管理相关的方法

    1)alloc 引用计数器自动设为1

    2)retain 引用计数器+1 返回了经过+1以后的当前实例对象

    3)release 引用计数器-1,并不一定是释放

    4)retainCount 获取引用计数器的值

    5)dealloc 当实例对象被销毁之前,系统自动调用。

    一定要调[super dealloc]

    和内存管理相关的名词

    1)僵尸对象:此对象被销毁,不能再使用,不能给它发送任何消息

    2)野指针:指向僵尸对象(不可用的内存)的指针,给野指针发送消息将会产生不可控的后果。

    3)空指针:没有指向任何对象的指针,给空指针发消息不会产生任何行为

    内存管理原则

    1.如果你想持有某个对象,就必须负责让做一次retain操作,引用计数器+1.

    2.如果你想放弃对某个对象的持有权,就要负责让其做一次release操作,引用计数器-1.

    相关文章

      网友评论

          本文标题:ARC MRC

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