码迷,mamicode.com
首页 > 移动开发 > 详细

ios 内存管理

时间:2015-09-17 13:07:35      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

Objective-C提供了三种内存管理方式:manual retain-release(MRR,手动管理),automatic reference counting(ARC,自动引用计数),garbage collection(垃圾回收)。iOS不支持垃圾回收;ARC作为苹果新提供的技术,苹果推荐开发者使用ARC技术来管理内存;这篇笔记主要讲的是手动管理。

内存管理的目的是:
1.不要释放或者覆盖还在使用的内存,这会引起程序崩溃;
2.释放不再使用的内存,防止内存泄露。iOS程序的内存资源是宝贵的。

MRC手动管理内存也是基于引用计数的,只是需要开发者发消息给某块内存(或者说是对象)来改变这块内存的引用计数以实现内存管理(ARC技术则是编译器代替开发者完成相应的工作)。一块内存如果计数是零,也就是没有使用者(owner),那么objective-C的运行环境会自动回收这块内存。

objective-C的内存管理遵守下面这个简单的策略:
注:文档中把引用计数加1的操作称为“拥有”(own,或者take ownership of)某块对象/内存;把引用计数减1的操作称为放弃(relinquish)这块对象/内存。拥有对象时,你可以放心地读写或者返回对象;当对象被所有人放弃时,objective-C的运行环境会回收这个对象。
1.你拥有你创建的对象
也就是说创建的对象(使用alloc,new,copy或者mutalbeCopy等方法)的初始引用计数是1。
2.给对象发送retain消息后,你拥有了这个对象
3.当你不需要使用该对象时,发送release或者autorelease消息放弃这个对象
4.不要对你不拥有的对象发送“放弃”的消息

ios 内存管理

标签:

原文地址:http://www.cnblogs.com/jiafuyang/p/4815919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!