我有一个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!
答案 0 :(得分:3)
只需忽略所有不属于您的应用程序的泄漏。仪器和IOS /框架都不是完美的。您应该只关注在您自己的类中发现的泄漏。在应用程序中发现内存问题的来源:
1)在Schema编辑器中启用NSZombieEnabled模式 - 在这种情况下,Instruments将提供更多信息。
2)在Xcode中使用Product-> Analyze工具 - Xcode会在源代码中向您显示可疑位置。