Iphone SDK Utility应用程序模板有泄漏

时间:2009-08-09 04:50:12

标签: iphone objective-c memory-leaks utility

我只使用Utility Application模板创建一个项目。 当我按“信息按钮”时,此模板具有本机内存泄漏 翻转视图。

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

8 个答案:

答案 0 :(得分:13)

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

更有可能的是,这不是泄密,而是一些记账信息被dyld隐藏起来,泄漏/仪器失去了记录。

鉴于它是128字节并且我猜它只有一个,我鼓励你通过http://bugreport.apple.com提交一个bug然后暂时忘记它,因为它不太可能真的是一个漏洞,你同样不可能在你的应用程序中修复它。

答案 1 :(得分:5)

泄漏这样做:

XCode 3.2--

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

当仪器出现时,点击泄漏(你可能需要点击底部的小图标,看起来像一个方框内的四个方框)

跑步后大约7秒钟你应该看到泄漏: - Malloc 128字节,一些地址,128字节,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(做了一个单独的alloc和release)并且注释了addSubview:action - 没有泄漏 - 显然,屏幕是空白的。

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

答案 2 :(得分:5)

希望这有帮助。

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

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

答案 3 :(得分:2)

我在真正的ipod touch上尝试过它。没有报告泄漏。 可能只是模拟器的事情......

答案 4 :(得分:1)

Leaks已经在我的CoreGraphics中标记了open_handle_to_dylib_path;肯定会有一些标记在这里。由于它最重的只有256个字节,我向苹果公司发布了一个错误报告并称之为完成。然后,您可以在Leaks的配置中设置规则以忽略该报告。

正如bbum指出的那样,工作中可能存在严重的伏都教。我非常怀疑Apple会让漏洞框架通过QA - 特别是因为它很容易重现。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

我有同样的问题,但能够理解为什么会这样。我已在此article

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

可能对你有用。