0

我有一个使用 SDK 4.0 的 iPhone 应用程序。它显示“仪器”工具中没有泄漏,我相当确信代码没有任何内存泄漏。

然后我尝试将 iAd 添加到应用程序中,它开始显示内存泄漏。为了解决这个问题,我删除了所有额外的代码。

剩下的就是将 AdBannerView 添加到 .xib 文件(无需对没有 iAd 的代码的工作版本进行任何修改)。这显示了内存泄漏。

每次加载视图时,“Instruments”工具都会显示 5 个泄露的块,每个 16 字节,带有责任库“基础”和责任框架

[NSCFString copywithZone:]

进一步运行该应用程序会给我来自责任库“iAd”的泄漏(2 次泄漏,每个泄漏 48 字节)和责任框架:

[AdBrandingFrame initWithFrame:]

此外,我还通过负责的库“UIKit”和负责的框架获得 48 字节泄漏

-[UIView _createLayerWithFrame:]

由于除了在 .xib 文件中添加了 AdBannerView 之外,我的工作非泄漏代码中绝对没有任何附加内容,我想知道是否是 Apple 的代码导致了泄漏。虽然泄漏相对较小,但我想把它熨平。我知道即使可能没有泄漏也有可能出现泄漏(指针可能仍由操作系统以某种泄漏不知道的方式持有 - 很高兴知道是否是这种情况)。

所以我有两个问题:
1)有没有可能问题实际上是我的代码,并且由于某种原因泄漏仅在添加 AdBannerView 后才出现?如果有这种可能性,我会运行另一个彻底的代码测试。

2) 如果这是 Apple 代码的问题,并且你们中的任何人都遇到过这个问题,那么您是否找到了任何解决方法?

任何帮助将不胜感激。谢谢!

4

1 回答 1

0

我只是有同样的问题。我认为这已在 IOS 4.1 中得到修复。当我在 4.0 中进行测试时,我得到了一些泄漏“NSCFString copyWithZone”在 4.1 中进行测试时一切都很好。

于 2010-10-13T19:55:09.487 回答