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

iOS开发_内存管理

时间:2015-08-04 02:01:10      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

1.ObjC中对象是存储在堆中的,系统并不会自动释放堆中的内存,但是基本类型是由系统自己管理的,放在栈上。

2.要开发一个程序并不难,但是优秀的程序则更测重于内存管理,它们往往占用内存更少,运行更加流畅。

3.野指针就是指针所指向的内存地址已经被系统回收,而指针没有被置为空;内存泄露就是该被回收的对象没有被回收,导致内存被占用,也就是内存泄露。

4.在ObjC中给空对象发送消息是不会引起错误的。

5.属性参数:

技术分享

retain:先release,再retain,用于非字符串对象

copy:先release,再copy,用于字符串对象

6.autorelase方法将一个对象的内存释放延迟到了自动释放池销毁的时候;自动释放池实质是当自动释放池销毁后调用对象的release方法,不一定就能销毁对象(例如如果一个对象的引用计数器>1则此时就无法销毁);由于自动释放池最后统一销毁对象,因此如果一个操作比较占用内存(对象比较多或者对象占用资源比较多),最好不要放到自动释放池或者考虑放到多个自动释放池;autorelease方法不会改变对象的引用计数器,只是将这个对象放到自动释放池中;

 

iOS开发_内存管理

标签:

原文地址:http://www.cnblogs.com/xiangli/p/4700824.html

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