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操作。
时间: 2024-10-05 23:58:58