【问题标题】:IOS Memory Leak AnalysisIOS内存泄漏分析
【发布时间】:2012-05-09 02:58:59
【问题描述】:

我在我的应用中添加了以下代码:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError *setCategoryError = nil;
BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

在添加此代码之前,我在运行 xCode Instruments Leaks 工具时没有发现任何泄漏。添加此代码后,我得到了泄漏: 泄漏对象:_NSCFString, 地址:0x5572e0, 大小:32 字节, 负责库:AudioToolBox, 负责框架:AudioSessionGetProperty。

代码行取自 IOS 库示例代码。关于什么是错误的以及我需要做些什么来解决它的任何建议?

谢谢....

【问题讨论】:

    标签: ios memory-leaks


    【解决方案1】:

    您发布的代码没有泄漏。不过,可能在 Apple 框架中存在漏洞,但您无能为力。很可能是 Leaks 工具报告的误报。

    【讨论】:

    • Leaks 仅在极少数情况下报告误报(例如,如果您存储编码指针而不是原始指针)。但是,我只在 OS X 上的 Carbon 上看到过这种情况(我认为它在 HIToolbox.framework 中),从来没有在 iOS 上。另一方面,泄漏确实无法报告真正的泄漏,尤其是在 32 位系统上。
    • 好的,感谢您的帮助。我不必过多地处理内存泄漏,所以我对它们了解不多。我的应用在很长一段时间内似乎都可以正常运行,但我有点担心如果它出现泄漏,Apple 可能会给我的审批带来问题。
    • 我实际上发现第一次调用[AVAudioSession sharedInstance] 会导致这种情况。随后的调用不会增加泄漏。不知道是 Apple 的错误还是 Instruments 的问题。
    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多