【发布时间】:2010-10-17 03:41:17
【问题描述】:
我正在寻找好的解释。我有一本关于 Objective-c 的 1000 页书,但不幸的是,关于内存管理、保留计数的部分描述得非常糟糕且难以理解。
【问题讨论】:
我正在寻找好的解释。我有一本关于 Objective-c 的 1000 页书,但不幸的是,关于内存管理、保留计数的部分描述得非常糟糕且难以理解。
【问题讨论】:
简要说明:您分配、新、保留或复制的任何内容也必须释放。此外,如果您打算在当前消息循环之外继续保留任何您不分配或复制的内容(否则您有可能将其自动释放并成为无效引用)。
【讨论】:
对我来说Apple's Memory Management Programming Guide 工作得很好。
它从一开始就解释了基础知识,因此您可以开始工作。但如果您有兴趣,它也会涉及更高级的主题。
【讨论】:
特别是关于使用 NIB 和 IBOutlet 的内存管理,这是我见过的最短和最清晰的描述:
http://blog.airsource.co.uk/index.php/2008/12/23/memory-management-and-nibs/
【讨论】:
当然,有很多免费资源可用于学习内存管理,但如果您真的是该主题的新手并且更喜欢可视化方法,Steve Scott(运行 Mac 开发者网络的人)有一个很棒的,一套完整的培训视频,只需 10 美元即可下载:http://www.mac-developer-network.com/videotraining/beginner/vid001/。这基本上是一个超越“使用释放和自动释放”的讲座,并讨论了操作系统如何管理内存。如果您在 Comp 中错过了这些内容,将非常有帮助。科学。 101.
FWIW,我使用了一组三个“如果”条件,这些条件在我刚开始时很有帮助(例如,“如果我分配或复制对象,那么……”)。对我来说,一开始记住这三个条件比记住一套完整的规则更容易。我写了一个简短的教程,使用这些“大脑触发器”来解释规则,以防它对其他人有帮助。 http://www.clintharris.net/2009/three-brain-triggers-for-objc-memory-mgmt/
【讨论】:
CocoaDev 总是有很好的资源,他们对内存管理的介绍也不例外。
【讨论】:
Memory Management in Objective-C Learn Obj-C Memory Management
他们有一些简单的答案,但也有指向 Apple 文档的链接。
【讨论】:
这是我找到的最简洁的解释之一:
【讨论】: