Iphone SDK Utility Application 模板有泄漏

Posted

技术标签:

【中文标题】Iphone SDK Utility Application 模板有泄漏【英文标题】:Iphone SDK Utility Application template has leak 【发布时间】:2010-11-18 01:13:24 【问题描述】:

我只是创建一个带有实用程序模板的项目。 当我按下“信息按钮”时,此模板存在本机内存泄漏 翻转视图。

任何人都知道我该如何解决这个泄漏??? 我只是用这个模板做了一个新项目, 我不添加新对象。

【问题讨论】:

您使用的是什么 SDK 版本? 我在 Snow Leopard 上使用 SDK 3.0 和 Xcode 3.2 【参考方案1】:

我遇到了同样的问题,但能够理解为什么会这样。我在article

中提供了有关此问题的简要信息

可能对你有用。

【讨论】:

【参考方案2】:

这样做有泄漏:

XCode 3.2--

文件、新项目、基于导航的应用程序 给它起个名字 构建它 使用性能工具运行 -> 泄漏

当 Instruments 出现时,点击 Leaks(您可能需要点击底部的小图标,看起来像一个盒子里的四个盒子)

运行大约 7 秒后,您应该会看到泄漏: -- Malloc 128 Bytes, some Address, 128 Bytes, CoreGraphics, open_handle_to_dylib_path

我在 AppDelegate 中追踪到这段代码:

//APPLE CODE
- (void)applicationDidFinishLaunching:(UIApplication *)application     

    // Override point for customization after app launch    

    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];

我打破了导航控制器(进行了单独的分配和释放)并注释掉了 addSubview: 操作 - 没有泄漏 - 显然,屏幕是空白的。

直到我尝试 addSubview 才发生泄漏。由于有很多方法可以添加子视图,我尝试了这些。每个都会导致泄漏或空白屏幕。

【讨论】:

【参考方案3】:

我在真正的 ipod touch 上试了一下。没有报告泄漏。 可能只是一个模拟器的东西......

【讨论】:

【参考方案4】:

这一定是一个错误。它出现在 Apple 自己的示例 PageControl 中,可在此处找到: http://developer.apple.com/iphone/library/samplecode/PageControl/index.html#//apple_ref/doc/uid/DTS40007795

【讨论】:

【参考方案5】:

希望这会有所帮助。

发件人:http://www.cocos2d-iphone.org/forum/topic/2460

“模拟器存在与单例和 llvm 相关的错误,这些错误被 Instruments 错误报告。请始终检查设备本身的泄漏情况。”

【讨论】:

【参考方案6】:

Leaks 也为我在 CoreGraphics 中标记了 open_handle_to_dylib_path;这里肯定有标记。因为它最重的时候只有 256 字节,所以我向 Apple 发送了一个错误报告并称它完成了。然后,您可以在 Leaks 的配置中设置规则以忽略该报告。

正如 bbum 指出的那样,工作中可能存在严重的巫术。我严重怀疑 Apple 是否会让有漏洞的框架通过 QA——尤其是因为它很容易重现。

【讨论】:

【参考方案7】:

这可能是泄漏,也可能不是泄漏。如果您要添加分配的回溯,那将很有帮助。

这很可能不是泄漏,而是由 dyld 隐藏的一些簿记信息泄漏/Instruments 无法追踪。

鉴于它是 128 字节,我猜只有其中一个,我鼓励您通过 http://bugreport.apple.com 提交错误,然后暂时忘记它,因为在不太可能的情况下它确实是泄漏,您将同样不可能从您的应用程序中修复它。

【讨论】:

【参考方案8】:

在当前 SDK 实用程序模板中没有泄漏。您是如何得到模板中存在泄漏的印象的?它只是分配视图所需的内存。

泄漏是指不存在指针且无法再释放的内存。

【讨论】:

嗨,我正在从 Utility Application 模板创建一个新项目,并使用 Instruments 运行它,这向我展示了两个泄漏。我得到:泄漏对象:Malloc 128 字节大小:128 字节负责库:CoreGraphics 负责框架:open_handle_to_dylib_path

以上是关于Iphone SDK Utility Application 模板有泄漏的主要内容,如果未能解决你的问题,请参考以下文章

XMPP - iphone sdk 中的用户搜索?在 iphone sdk 中使用 XEP-0055?

如何增加推送通知徽章 iPhone

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

iPhone:Airplay SDK有啥用?

MAP 与 iPhone 3.0 SDK 一起使用都有哪些限制?

我在哪里可以获得 iPhone 2.0 SDK?