首页 > 其他 > 详细

【object-c 学习笔记】第9章 内存管理

时间:2015-05-13 00:39:22      阅读:90      评论:0      收藏:0      [点我收藏+]

1、概念理解

举例:以图书馆为例,如果每个人都只借不还,那么图书馆最终将会因无书可借而倒闭。

概念:当程序运行结束时,操作系统将收回占用的资源,但是只要程序还在运行,它会一直占用资源,如果不进行清理,某些资源将被耗尽,程序有可能会崩溃,内存管理就是确保在需要的时候分配内存,不需要使用的时候释放内存

 

2、对象生命周期

  包含诞生(通过alloc或者new方法实现)、生存(接受信息并执行操作)、交友(通过复合以及向方法传递参数)、以及死去(释放内存)。

 

3、引用计数

  cocoa采用引用计数了解对象的生命周期是否结束了。

(1)计数方法

 a.计数器值加1,表示某段代码需要访问一个对象;

 b.计数器值减1,表示某段代码结束访问一个对象;

 c.计数器值为0,表示不再有代码访问该对象了,因此它将销毁,其占用的内存被系统回收以便重用。

 (2)使用方法

 a. 当计数器值为0时,object-c会自动向对象发送一条dealloc消息;可以重写dealloc方法,把已经分配的全部相关资源释放。

   注意:一定不要直接调用dealloc方法,,object-c会自动销毁对象时自动调用它。

 b.当需要获得引用计数器当前的值,可以发送retainCount消息。

//retain、release、retainCount的方法申明
1 -(id)retain;
2 - (oneway void) release;
3 - (NSUInteger) retainCount;
  retain方法返回一个id类型的值,通过这种方式,可以在接受其他消息的同时进行retain调用,增加对象的保留计数器的值和傲气对象完成某种操作。例如:
[[car retain]setTire:atIndex:2]; 表示要求car对象将其保留计数器的值加1并执行setTire操作。

【object-c 学习笔记】第9章 内存管理

原文:http://www.cnblogs.com/sallyWei/p/4498843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!