我只是使用“实用程序应用程序模板”创建了一个项目。 当我点击“信息按钮”翻转视图时,这个模板会出现本地内存泄漏。
有人知道怎样解决这个内存泄漏问题吗? 我只是从这个模板创建了一个新项目,并没有添加新的对象。
我只是使用“实用程序应用程序模板”创建了一个项目。 当我点击“信息按钮”翻转视图时,这个模板会出现本地内存泄漏。
有人知道怎样解决这个内存泄漏问题吗? 我只是从这个模板创建了一个新项目,并没有添加新的对象。
可能是内存泄漏,也可能不是。如果您能添加分配的回溯信息,那会很有帮助。
很有可能它不是一个内存泄漏,而是由dyld存储的一些簿记信息造成的泄漏/Instruments跟踪不到。
考虑到它只有128字节,而且我猜只有一个,我建议您通过http://bugreport.apple.com提交一个bug,并暂时不要管它,因为如果它真的是一个泄漏,您同样不太可能从应用程序内部修复它。
通过以下步骤找到泄漏点:
XCode 3.2--
文件 -> 新建项目 -> 基于导航的应用
给它取一个名字
编译它
使用性能工具运行 -> 泄漏
当 Instruments 出现时,点击泄漏(你可能需要点击底部看起来像四个盒子的小图标)
大约在运行后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分开(进行了单独的alloc和release),并注释掉了addSubview:操作——没有泄漏——显然,屏幕是空白的。
直到我尝试添加子视图时才发生了泄漏。由于有许多添加子视图的方法,我尝试了这些方法。每个方法都导致泄漏或空白屏幕。
我在真正的iPod Touch上尝试了一下,没有泄漏报告。可能只是模拟器的问题...
这一定是个bug。它出现在苹果自己的示例中,即PageControl,可以在此处找到: http://developer.apple.com/iphone/library/samplecode/PageControl/index.html#//apple_ref/doc/uid/DTS40007795
泄漏问题也已经标记了CoreGraphics中的open_handle_to_dylib_path
,这里肯定有什么问题。由于它最多只有256字节,我向苹果提交了一个错误报告并将其标记为完成。您可以在Leaks的配置中设置规则以忽略此报告。
正如bbum所指出的那样,可能存在严重的巫术。我非常怀疑苹果会让泄漏的框架通过QA - 特别是因为很容易复制。
在当前的SDK实用模板中没有泄漏。你是怎么得出模板有泄漏的印象的?它只是为视图分配所需的内存。
泄漏是指没有指针存在且无法再释放的内存。