iPhone开发:内存管理、工具使用与应用部署
1. 内存管理基础
1.1 引用计数系统
iPhone采用引用计数的内存管理系统,而非垃圾回收机制。这意味着开发者需要手动控制对象的创建、保留和释放。当对象的引用计数大于等于1时,对象不会被释放;当引用计数降为0时,对象会被释放。
例如,使用 alloc 、 new 或 copy 创建的对象,初始引用计数为1。发送 retain 消息会使引用计数加1,发送 release 消息会使引用计数减1。如果在没有将引用计数降为0的情况下丢失对对象的引用,就会造成内存泄漏。
以下代码会造成数组泄漏:
NSArray *leakyarray = [[NSMutableArray alloc] init];
leakyarray = nil;
1.2 自动释放池
除了 retain 和 release ,Objective - C还提供了 autorelease 内存管理方式。在对象创建时发送 autorelease 消息,表示希望对象在未来某个时间自动释放。请求对象的方法可以立即使用自动释放的对象,并在当前运行循环结束时让其自动释放,也可以保留该对象以供未来使用。
超级会员免费看
订阅专栏 解锁全文
1273

被折叠的 条评论
为什么被折叠?



