好的,我了解iphone内存管理的基础知识,保留和释放的调用必须匹配。
您还可以自动释放内存池刷新时释放的内容。
我仍然需要现实生活场景来理解,为什么你想要调用retain然后释放?
autorelease是否经常使用,以及在什么情况下?
我只想在iphone范例下理解内存管理应该如何工作,有模式吗?
答案 0 :(得分:2)
写一个真人生活节目。任何节目。可能只是已经存在的东西的副本,但在经过一些密集使用后,它肯定会让你了解内存管理。
更好的是,写下来并将其传播给普通大众(或开源社区)。你找不到的内存错误肯定会被其他人发现。
理解某事的唯一真正方法是实践(并犯错误)。实践内存管理的唯一方法是实际使用它(并犯错)。
答案 1 :(得分:1)
我建议阅读“可可内存管理指南”封面。那时你会完全理解它。
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html
答案 2 :(得分:1)
你误解了自动释放池。放在自动释放池中的所有内容都将在当前事件循环结束时释放。
这意味着您正在使用的对象仅用于处理事件,它是AR池的一个很好的候选者,但您还需要管理事件之间的状态,并且您需要手动保留和释放。这显然是一种极其错误的简化,但它可能有助于您的理解: - )
还有很多其他考虑因素需要考虑,我非常强烈建议您阅读Jasarien建议的内容。