2

我有一个 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

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

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

4

1 回答 1

4

只需忽略所有不属于您的应用程序的泄漏。Instruments 和 IOS / frameworks 都不是完美的。您应该只关注在您自己的课程中发现的这种泄漏。要发现应用程序中内存问题的根源:

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

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

于 2013-11-04T06:44:21.560 回答