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?
如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?