iphone开发中内存问题汇集

来源:互联网 发布:东华网络教育 编辑:程序博客网 时间:2024/04/29 04:17

做iphone程序开发的朋友常常被内存泄露问题烦恼,毕竟,作为一个移动手机,资源是有限的,因此开发的时候要特别留意对象的创建和释放问题,下面是小弟自己总结的一些方法,提出来和大家共同探讨一下:

1.在函数体中,alloc一个临时对象,及时release掉它,确保函数体内部不存在内存泄漏。

2.autorelease效率不高,所以能自己release的地方,尽量自己release,不要随便交给autorelease来处理。

3.获得所有权的函数要和释放所有权的函数一一对应。

4.保证只有带alloc, copy, retain 字串的函数才会让调用者获得所有权,也就是引用计数加一。

5.在对象的 dealloc函数中释放对象所拥有的成员变量。

6.永远不要直接调用dealloc来释放对象,完全依赖引用计数来完成对象的释放。(这样你可以避免很多不必要的麻烦)

7.不用使用循环引用,这样会使程序陷入死循环。

8.release掉一个对象以后,要及时nil,以免出现下次调用这个无效的“野指针”。

9.某些比较小的temp变量最好尽量动态分配它,自动回收的内存不是很大,而且这部分内存你不好操作它。

10.最后一条,也是最重要的一条:经常使用leaks工具帮助查看内存泄漏问题,能帮助你节约大量阅读时间,它可能找不到所有的内存泄漏,也可能找到了你无法解决的问题,还可能不会告诉你内存泄漏发生在哪,但是它找到的都是程序中肯定存在的内存泄漏问题。所以好好利用leaks,能为你的开发节省大量时间。