我正在寻找好的解释。我有一本关于objective-c的1000页书籍,但不幸的是,有关内存管理,保留计数的部分描述得非常糟糕且难以理解。
答案 0 :(得分:7)
快速解释:您分配,新,保留或复制的任何内容您还必须释放即可。此外,如果您计划在当前消息循环之外保留它(或者您有可能将其自动释放并成为无效参考),那么您未分配或复制的任何内容都应保留。
答案 1 :(得分:5)
这是我发现的最简洁的解释之一:
答案 2 :(得分:2)
CocoaDev总是拥有相当不错的资源,他们对内存管理的介绍也不例外。
答案 3 :(得分:1)
Memory Management in Objective-C Learn Obj-C Memory Management
他们有一些简单的答案,但也链接到Apple的文档。
答案 4 :(得分:1)
当然,有很多免费资源可以用来学习内存管理,但是如果你真的对这个主题不熟悉并且更喜欢视觉方法,史蒂夫斯科特(经营Mac开发者网络的人)有一个很棒的,一套汤到坚果的培训视频,你可以下载10美元:http://www.mac-developer-network.com/videotraining/beginner/vid001/。它基本上是一个超越“使用发布和自动释放”的讲座,并讨论操作系统如何管理内存。如果你在Comp中错过了这个东西,那将非常有用科学。 101。
FWIW,我使用了一组三个“If”条件,这些条件在我开始时很有用(例如,“如果我分配或复制并反对,那么......”)。我最初要比完整的规则更容易记住这三个条件。我写了一篇简短的教程,使用这些“大脑触发器”来解释规则,以防它对其他人有帮助。 http://www.clintharris.net/2009/three-brain-triggers-for-objc-memory-mgmt/
答案 5 :(得分:0)
特别是关于使用NIB和IBOutlet的内存管理,这是我见过的最简短和最清晰的描述:
http://blog.airsource.co.uk/index.php/2008/12/23/memory-management-and-nibs/
答案 6 :(得分:0)
对我来说Apple's Memory Management Programming Guide效果很好。
它从一开始就解释了基础知识,因此您可以开始工作。但如果你感兴趣,它也会进入更高级的科目。
答案 7 :(得分:0)