内存管理

内存管理相关方法

cocoa类中的根类NSObject有几个方法(类方法)是对内存进行管理的。
1)alloc方法:为对象分配一块内存空间;当alloc一个对象空间时,retain count加1。
2)dealloc方法:用于释放对象的空间。此方法不必手工调用,系统通过引用计数器(retain count)来判断是否调用该方法:当对象的retain Count的计数大于或者等于1的时候,系统会继续维持这个对象。当对象的retain Count为0的时候,系统会释放这个对象,并回收它占得内存空间。
3)retain方法:使retain count加1。
4)release方法:告诉系统已经使用完这个变量了(已经不需要它了),retain Count减1。 
    autorelease一般用在stringWithString这样比较爽的对象创建+初始化的静态函数中,跟release差不多,唯一的区别是你不用手工去release了,相当于在后台有一个机器人帮你release。

为了防止内存泄露。无论什么时候,我们创建一个对象,或者创建一个对象的拷贝,我们都必须通过release方法释放(谁创建,谁释放)。

★注意:
在研究retain count的时候,我不建议用NSString。因为在下面的语句中,
NSString *str1 = @”constant string”;
str1的retain count是个很大的数字,Objective-C对常量字符串做了特殊处理。
当然,如果你这样创建NSString,得到的retain count依然为1
NSString *str2 = [NSString stringWithFormat:@”123”];

自动释放池


 在移动设备上 比如iPhone,iPad,为了节约宝贵的内存资源,不建议使用自动释放池。


From:http://liwpk.blog.163.com/blog/static/36326170201141452244641/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值