xCode Instruments检测到这些内存泄漏对象是什么?

时间:2013-11-03 04:50:43

标签: objective-c xcode memory-leaks instruments

我有一个iPhone应用程序,似乎有内存泄漏问题。这是一款益智游戏,经过一些谜题后,应用程序在设备上崩溃。

我现在正在尝试使用xcode Instruments来检测正在发生的事情。第一次使用仪器。

我注意到“泄漏”图中的泄漏条,正好是加载视图的时间。我复制了下面泄漏的物品。

Leaked Object   #   Address Size    Responsible Library Responsible Frame
__NSTimeZone    1   0x1f87cfc0  32 Bytes    CFNetwork   _CFGregorianDateCreateWithBytes
icu::OlsonTimeZone  1   0x1f1a9a00  1.00 KB CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f881850  128 Bytes   CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f8817d0  128 Bytes   CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f1a7a00  1.00 KB CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
__NSTimeZone    1   0x1f87d010  32 Bytes    CFNetwork   _CFGregorianDateCreateWithBytes

我的应用程序继续工作,没有发现其他泄漏的对象。经过几轮谜题后,它崩溃了。我不确定它与上面显示的泄漏物体有关。我的猜测还有其他问题,但我认为我需要先解决这些泄漏的物体。

在我看来,泄露的物体与日期/时间有关。我试图注释掉日期/时间相关的行,但我仍然有相同的泄漏对象。有谁知道我应该检查这些泄漏物体是什么? TIA!

1 个答案:

答案 0 :(得分:3)

只需忽略所有不属于您的应用程序的泄漏。仪器和IOS /框架都不是完美的。您应该只关注在您自己的类中发现的泄漏。在应用程序中发现内存问题的来源:

1)在Schema编辑器中启用NSZombieEnabled模式 - 在这种情况下,Instruments将提供更多信息。

2)在Xcode中使用Product-> Analyze工具 - Xcode会在源代码中向您显示可疑位置。