我正在编写iPhone应用程序,现在是时候开始清理内存了。
通过比我更好的程序员,我被告知每次执行alloc时,我应该在模块的末尾释放内存。
这句话是否每次有一个alloc时,应该在.m文件的dealloc部分删除?
感谢 贝
答案 0 :(得分:3)
不要只听你的同事告诉你的内容 - 请阅读Memory Management Guide。
内存管理不是你最后做的事情,因为'清理'是你在编程时需要考虑的事情。不要只依赖某人告诉你的经验法则。阅读文档,了解它们,然后使用经验法则帮助您记住它们是什么。
例如 - 在使用alloc
的方法中创建局部变量时,您不能等到dealloc到release
它,因为那时该变量已超出范围,没有一个对象可以调用release
,并且您有泄漏。所以经验法则没有任何好处。
答案 1 :(得分:1)
您可能需要阅读Apple开发者网站上的内存管理指南。基本上,您需要为每个release
使用autorelease
或new, copy, or alloc
。但理想情况下,发布应该在调用new, copy, or alloc
的函数中,而不是在dealloc函数中。 dealloc只应用于释放保存在头文件的@property部分中的对象。