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

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

内容简介:就我所见,您显示的代码没有泄漏. 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不会释放任何内存》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

谷歌的断舍离:互联网企业的破坏式创新

谷歌的断舍离:互联网企业的破坏式创新

[日]辻野晃一郎 / 樊颖 / 机械工业出版社 / 2018-1 / 45.00

本书主要分为三部分: 第一部分主要讨论了世界当下如火如荼的互联网企业进军传统产业大潮,并探讨了传统企业在互联网时代的救赎之路。 第二部分主要探讨了成功体验的反面:速度与迭代,并讨论了传统企业之所以无法实现迭代与快速发展的关键原因。介绍互联网公司如何通过组织精简流程来实现高速竞争时代的机动性。 第三部分讨论了互联网时代究竟需要什么样的人才,传统企业的员工应当怎样投身互联网企业才能避......一起来看看 《谷歌的断舍离:互联网企业的破坏式创新》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换