美文网首页
OC内存管理的黄金法则

OC内存管理的黄金法则

作者: 骑着蜗牛追F1 | 来源:发表于2015-04-08 14:26 被阅读306次

如果对一个对象使用了alloc、[Mutable]copy,retain,那么你必须使用相应的realease或者autorelease

cocoa中的内存管理机制——引用计数

引用计数(reference counting)又称为保留计数(retain counting),引用计数的数值表示有几个其它对象在使用它。

每一个对象都拥有一个引用计数

当对象被创建的时候,引用计数的值为1

当发送retain消息的时候,该对象的引用计数加1,该对象的引用计数为2

当这个对象发送release消息的时候,该对象的引用计数减1

当一个对象的引用计数为0时,系统自动调用dealloc方法,销毁该对象。

子类的某些实例是继承自父类的,因此,我们需要调用父类的dealloc方法,来释放父类拥有的这些对象。

一般来说调用的顺序是,当子类的对象释放完时,然后再释放父类的所拥有的实例,这一点与调用初始化方法,正好相反。

当一个所有者(可以是任何一个OC对象)做了以下某个动作的时候,它就拥有了对一个对象的所有权。

(1)如果创建或者复制某个对象时,则拥有了该对象的所有权,即包含下列关键词时:

alloc,allocWithZone:,copy,copyWithZone:,mutableCopy,mutableCopyWithZone:

(2)如果没有创建或复制对象,而是保留引用,同样拥有该对象的使用权

retain

(3)当拥有了某个对象的所有权,在不需要某一个对象时,需要释放他们,用

release,autoRelease

关于ARC(Auto reference counting)自动引用计数

当你在编译程序的时候提供自动管理内存的功能,它会自动加入内存的控制代码,控制对象的生命周期,大大简化了内存管理的步骤,ARC管理内容的原理就是,编译器会在适当的地方自动插入retain、release和autorelease消息,但是注意版本,是在ios4及以上(不是很确定)

相关文章

  • OC内存管理的黄金法则

    如果对一个对象使用了alloc、[Mutable]copy,retain,那么你必须使用相应的realease或者...

  • 谈谈Objective-C的内存管理方式及过程

    1.方式:OC的内存管理是通过引用计数技术管理实现的,内存管理黄金法则:谁使对象引用计数+1,谁就负责使它的引用计...

  • OC的内存管理

    OC的内存管理分为MRC和ARC MRC 手动引用计数,在iOS5.0之前使用的都是手动引用计数,遵循黄金管理法则...

  • OC-内存管理的初步认识

    一、内存管理黄金法则: The basic rule to apple is everything thatinc...

  • 内存管理题

    1.管理原则 1.1内存管理-黄金法则 The basic rule to apply is everything...

  • 内存管理

    1黄金法则内存管理法则 谁拥有谁释放,使用alloc/new/copy/mutablecopy 或者使用 reta...

  • day15-MRC ---- iOS

    day15 1.SEL 2.MRC OC对象内存管理的法则:![Uploading class_256917.pn...

  • 自动引用计数(ARC)学习笔记

    环境 Xcode Version 8.0 (8A218a) Objective-C 回顾MRC内存管理的黄金法则 ...

  • 内存管理

    一.内存基本介绍 1、OC内存管理的基本概念 2、OC内存管理的范围​管理范围:管理任何继承自NSObject的对...

  • 内存管理

    目录一、内存分区 1、RAM和ROM 2、内存的五大分区二、内存管理 1、OC内存管理是指什么?OC内存管理的本质...

网友评论

      本文标题:OC内存管理的黄金法则

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