泄漏是如何发生的?

时间:2011-08-15 16:22:13

标签: objective-c memory-management memory-leaks

所以我已经了解了我的应用程序开发的细节部分,我正在检查是否存在延迟的内存泄漏。我决定给Xcode的 Leaks 一个旋转。当我第一次运行时,它告诉我没有内存泄漏。经过一分钟的欢乐之后,我仔细观察了一下,查看了分配情况,发现我有几个物体漂浮在记忆中,我不想要那里。例如,每次我创建一个UIAlertView(我的应用程序中经常出现这种情况)时,我从来没有release将它们从视图中解散出来。这导致有几个UIAlertView个物体漂浮在周围。

所以,我的问题是: Leaks 如何检测到内存泄漏?当我有UIAlertView个物体浮动时,为什么没有告诉我有任何泄漏?我只是使用 Leaks 错了吗?

1 个答案:

答案 0 :(得分:3)

如果您仍然指向那些UIAlertView个实例,那么它们在技术上并不是泄漏。只有当您的应用程序无法再访问它们时,才会被泄漏工具视为泄漏。正如你所注意到的那样,确实有一些方法可以让你的东西仍然存在。这就是Allocations工具派上用场的地方。