我只是使用实用程序应用程序模板创建一个项目。当我按下“信息按钮”翻转视图时,此模板存在本机内存泄漏。
任何人都知道我该如何解决这个泄漏???我只是从这个模板创建一个新项目,我不添加新对象。
我只是使用实用程序应用程序模板创建一个项目。当我按下“信息按钮”翻转视图时,此模板存在本机内存泄漏。
任何人都知道我该如何解决这个泄漏???我只是从这个模板创建一个新项目,我不添加新对象。
这可能是泄漏,也可能不是泄漏。如果您要添加分配的回溯,那将很有帮助。
更有可能的是,这不是泄漏,而是 dyld 隐藏的一些簿记信息,泄漏/仪器无法追踪。
鉴于它是 128 字节,我猜只有其中一个,我鼓励您通过http://bugreport.apple.com提交错误,然后暂时忘记它,因为在不太可能的情况下这确实是一个泄漏,您将同样不可能从您的应用程序中修复它。
得到泄漏这样做:
XCode 3.2--
文件、新项目、基于导航的应用程序
给它一个名字
Build It
Run With Performance Tools -> Leaks
当 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];
}
我打破了navigationController(做了一个单独的分配和释放)并注释掉了addSubview:动作 - 没有泄漏 - 显然,屏幕是空白的。
直到我尝试 addSubview 才发生泄漏。由于有很多方法可以添加子视图,我尝试了这些。每个都导致泄漏或空白屏幕。
希望这可以帮助。
来自: http: //www.cocos2d-iphone.org/forum/topic/2460
“模拟器存在与单例和 llvm 相关的错误,这些错误被 Instruments 错误地报告。始终检查设备本身的泄漏。”
我在真正的 ipod touch 上试了一下。没有报告泄漏。可能只是一个模拟器的东西......
Leaks 也open_handle_to_dylib_path
为我在 CoreGraphics 中进行了标记;这里肯定有标记。因为它最重的时候只有 256 字节,所以我向 Apple 发送了一个错误报告并称它完成了。然后,您可以在 Leaks 的配置中设置规则以忽略该报告。
正如 bbum 指出的那样,工作中可能存在严重的巫术。我严重怀疑 Apple 是否会让有漏洞的框架通过 QA——尤其是因为它很容易重现。
这一定是个bug。它出现在 Apple 自己的示例 PageControl 中,可在此处找到:http: //developer.apple.com/iphone/library/samplecode/PageControl/index.html#//apple_ref/doc/uid/DTS40007795
在当前的 SDK 实用程序模板中没有泄漏。您是如何得到模板中存在泄漏的印象的?它只是分配视图所需的内存。
泄漏是不存在指针且无法再释放的内存。
我有同样的问题,但能够理解为什么会这样。我在本文中提供了有关此问题的简要信息
可能对你有用。