首页 > 其他 > 详细

OC对象内存管理

时间:2015-11-12 17:35:48      阅读:245      评论:0      收藏:0      [点我收藏+]

内存管理(app占用内存过大,系统可能会强制关闭app, 造成闪退现象, 影响用户体验)

0>下列行为都会增加一个app的内存占用

#创建一个OC对象

#定义一个变量

#调用一个函数或者方法

1>对内存管理涉及的操作

@分配内存 : 比如创建一个对象, 会增加内存占用

@清除内存 : 比如销毁一个对象, 能减小内存占用

2>管理范围

@任何继承了NSObject的对象 (所有的OC对象,对象类型)

@对其他非对象类型(基本数据类型)无效(intcharfloatdoublestructenum )

3>只有OC对象才需要进行内存管理的本质

OC对象存放于堆里面

OC对象一般放在栈里面(栈内存会被系统自动回收)

注意:堆、栈的区别

@基本数据类型:大小固定,对象数据类型:大小不固定

@代码执行完毕后,“堆内存”不会自动销毁,而“栈”内存会自动弹栈(释放)

4>内存管理原则

@谁创建谁release : 如果你通过alloc、new或copy、mutableCopy来创建一个对象,那么你必须调用release或autorelease

@谁retain谁release :只要你调用了retain,就必须调用一次release

总结:

有加就有减 ,曾经让对象的计数器+1,就必须在最后让对象计数器-1,在自己负责的区域内(某个方法范围内、某个对象内等。):有+,就得有-

 

 
 

OC对象内存管理

原文:http://www.cnblogs.com/dafenqi-boby/p/4959314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!