首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Objective-C内存储器管理

2012-09-24 
Objective-C内存管理?1.对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息和执行操作)、交友(

Objective-C内存管理

?

1.对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息和执行操作)、交友(借助方法的组合和参数)以 ?及当它们的生命结束时最终死去(被释放),当对象的生命周期结束时,它们的原材料(内存)将被回收以供新的对象使用。

?

2.引用计数:

当使用alloc、new方法或者通过copy消息(生成接收对象的一个副本)创建一个对象时,对象的保留计数器值被设置为1;

要增加对象的保留计数器值,可以给对象发送一条retain消息,

要减少对象的保留计数器值,可以发一条release消息。

当一个对象的保留计数器归0时自动向对象发送一条dealloc消息。dealloc是自动调用的,切记手动调用,此方法可以重写。

NSAutoreleasePool *pool;pool = [[NSAutoreleasePool alloc] init];int i;for(i=0;i<10000; i++){id object = [someObject objectAtIndex: i];NSString *desc = [object description];//and do somethine with the descriptionif(i %1000 == 0){[pool release];pool = [[NSAutoreleasePool alloc] init]}}
?

?自动释放池以栈的形式实现:当你创建一个新的自动释放池时,它将被添加到栈顶。接收autoreales消息的对象将被放入最顶端的自动释放池中。

?

10.注意:如果开发Iphone软件,则不能使用垃圾回收,实际上,在编写iphone程序时,苹果公司建议不要在代码中使用autorelease方法,同时还要避免使用创建自动释放对象的便利函数.

热点排行