我知道这个问题是主观的,但我是Objective-C和MacOS的新手。虽然我正努力在我的内存管理方面勤奋,但我确信我的代码是漏洞的。有人可以建议一个很好的工具来检测这些泄漏吗?
谢谢!
答案 0 :(得分:7)
有泄漏,然后有泄漏。
泄漏被严格定义为内存中的分配,对于该分配没有对所述分配的剩余引用,因此,您的应用程序无法再次使用它。正如Bogatyr所说,The Leaks仪器可以很好地跟踪它们。
但是,您可能会发现自己的应用仍在不断增长,这是一个额外问题的明确迹象。无论它是否真的是泄密,分配的这种潜在无限增长显然非常糟糕。
为此,使用快照分析。我wrote a guide to doing exactly that人似乎在挖掘。也许它也会帮助你。
答案 1 :(得分:3)
Xcode具有内置工具,这些是开发人员通常用于调试性能和内存问题的工具。您可以通过Run - >访问它们。使用性能工具运行 - >仪器 - >泄漏。在NSZombies工具中也非常有用(这是一个使用它的教程:http://www.markj.net/iphone-memory-debug-nszombie/
答案 2 :(得分:0)
在XCode中你有一个选项,Build&分析(Shift-Cmd-A),它将为您检查内存问题。这将找到一些内存管理问题,但不是全部。
注意:在运行之前,您可能需要清理目标(Shift-Cmd-K)以确保编译所有项目文件。
之后你可以使用乐器,其他答案中提到的Leaks或Zombies。