13

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

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

4

8 回答 8

13

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

更有可能的是,这不是泄漏,而是 dyld 隐藏的一些簿记信息,泄漏/仪器无法追踪。

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

于 2009-08-10T01:49:27.013 回答
5

得到泄漏这样做:

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 才发生泄漏。由于有很多方法可以添加子视图,我尝试了这些。每个都导致泄漏或空白屏幕。

于 2009-09-05T01:43:23.927 回答
5

希望这可以帮助。

来自: http: //www.cocos2d-iphone.org/forum/topic/2460

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

于 2009-10-26T01:20:13.767 回答
2

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

于 2009-11-27T03:12:52.730 回答
1

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

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

于 2009-09-05T01:49:59.497 回答
1

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

于 2009-11-21T06:55:54.260 回答
0

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

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

于 2009-08-09T09:55:21.620 回答
0

我有同样的问题,但能够理解为什么会这样。我在本文中提供了有关此问题的简要信息

可能对你有用。

于 2010-05-19T05:39:48.550 回答