我有一个使用 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 代码的问题,并且你们中的任何人都遇到过这个问题,那么您是否找到了任何解决方法?
任何帮助将不胜感激。谢谢!