cocoa-touch – 使用dismissModalViewControllerAnimated不会释放任何内存

栏目: Objective-C · 发布时间: 5年前

内容简介:就我所见,您显示的代码没有泄漏. InstructionsScreen中可能存在泄漏,导致其被解除分配.我认为值得运行静态分析器以查看是否发现泄漏.Apple模板代码中的泄漏很有趣.可能是有泄漏.这似乎不太可能,但显然这并非不可能.我会说,它更可能是仪器中的假阳性,这就是为什么我建议使用静态分析仪.

我有一个非常简单的代码来显示模态控制器(nextController是一个类成员):

nextController = [[InstructionsScreen alloc] initWithNibName:@"InstructionsScreen" bundle:nil];
[self presentModalViewController:nextController animated:YES];
[nextController release];

然后当控制器隐藏时:

[self dismissModalViewControllerAnimated:YES];
nextController = nil;

所有工作都按预期工作,但是当我运行仪器对象分配时,它显示在解除模态控制器后,它所分配的内存不会被释放.这成为一个问题,因为当我显示几个控制器时,内存已经结束……

任何人都可以给我一些线索吗? Clang没有看到任何问题,所以我遇到了内存限制,因为被解雇的控制器的内存不会被释放.

编辑:我到目前为止发现的是,这似乎是苹果公司的一个漏洞.重现方式:XCode – >使用模板“实用程序”创建新项目.不要自己编写任何代码.只需创建一个新的实用程序应用程序并使用“对象分配”运行它,选择查看“创建和静止生活”.现在翻转模态控制器几次 – 你会看到分配的内存只会在模态控制器出现时以及当它消失时才会增长和增长……

就我所见,您显示的代码没有泄漏. InstructionsScreen中可能存在泄漏,导致其被解除分配.

我认为值得运行静态分析器以查看是否发现泄漏.

Apple模板代码中的泄漏很有趣.可能是有泄漏.这似乎不太可能,但显然这并非不可能.我会说,它更可能是仪器中的假阳性,这就是为什么我建议使用静态分析仪.

(您可能想要提出有关泄漏的错误报告.)

翻译自:https://stackoverflow.com/questions/1842967/using-dismissmodalviewcontrolleranimated-wont-free-any-memory


以上所述就是小编给大家介绍的《cocoa-touch – 使用dismissModalViewControllerAnimated不会释放任何内存》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

A Philosophy of Software Design

A Philosophy of Software Design

John Ousterhout / Yaknyam Press / 2018-4-6 / GBP 14.21

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first ......一起来看看 《A Philosophy of Software Design》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具