iphone内存管理,现实生活场景?

时间:2010-12-30 15:37:47

标签: iphone objective-c memory

好的,我了解iphone内存管理的基础知识,保留和释放的调用必须匹配。

您还可以自动释放内存池刷新时释放的内容。

我仍然需要现实生活场景来理解,为什么你想要调用retain然后释放?

autorelease是否经常使用,以及在什么情况下?

我只想在iphone范例下理解内存管理应该如何工作,有模式吗?

3 个答案:

答案 0 :(得分:2)

写一个真人生活节目。任何节目。可能只是已经存在的东西的副本,但在经过一些密集使用后,它肯定会让你了解内存管理。

更好的是,写下来并将其传播给普通大众(或开源社区)。你找不到的内存错误肯定会被其他人发现。

理解某事的唯一真正方法是实践(并犯错误)。实践内存管理的唯一方法是实际使用它(并犯错)。

答案 1 :(得分:1)

我建议阅读“可可内存管理指南”封面。那时你会完全理解它。

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

答案 2 :(得分:1)

你误解了自动释放池。放在自动释放池中的所有内容都将在当前事件循环结束时释放。

这意味着您正在使用的对象仅用于处理事件,它是AR池的一个很好的候选者,但您还需要管理事件之间的状态,并且您需要手动保留和释放。这显然是一种极其错误的简化,但它可能有助于您的理解: - )

还有很多其他考虑因素需要考虑,我非常强烈建议您阅读Jasarien建议的内容。