UIDeviceRGBColor 泄漏 - 如何修复?

Posted

技术标签:

【中文标题】UIDeviceRGBColor 泄漏 - 如何修复?【英文标题】:UIDeviceRGBColor leak - how to fix? 【发布时间】:2011-04-13 18:25:06 【问题描述】:

我正在使用 three20 库(不确定这是否是原因),并且在导航控制器的两个视图之间来回切换时出现泄漏。

其中一个泄漏的更多细节:

我能想到的唯一想法是在将第二个视图推入堆栈时显示工具栏:

/**
 * View is going to appear
 *
 * @version $Revision: 0.1
 */
- (void) viewWillAppear:(BOOL)animated 
    [self.navigationController setToolbarHidden:NO animated:animated];
    [super viewWillAppear:animated];
//end


/**
 * View will disappear
 *
 * @version $Revision: 0.1
 */
- (void) viewWillDisappear:(BOOL)animated 
    [self.navigationController setToolbarHidden:YES animated:animated];
    [super viewWillDisappear:animated];
//end

对于我的一生,我无法弄清楚这是从哪里来的。扩展的详细堆栈跟踪没有显示我的任何类。

这可能来自哪里?

【问题讨论】:

别敲three20,它已经证明自己在许多商店的***应用程序中表现出色。如果你学会正确使用它,就像任何其他库一样,它会变得非常强大、稳定并节省大量开发时间。 @coneybeare - 我非常同意。 在 swift 4 中仍然遇到问题。任何人都知道解决方案。 【参考方案1】:

如果您在三个 20 样式表之一中自定义导航栏色调或任何其他颜色,请确保您返回的是自动发布的颜色。

【讨论】:

我并没有真正使用任何 three20 样式表。 也许你应该只是为 UIColor 实例grep你的源代码,然后做一些代码检查。我认为这与three20无关 您能告诉我,这到底是什么意思确保您返回的是自动发布的颜色。 @KumarKi 这在 ARC 之前的日子里得到了回答。如果您使用的是现代内存管理,则不必担心。 @coneybeare 我使用 ARC 但仍然会泄漏

以上是关于UIDeviceRGBColor 泄漏 - 如何修复?的主要内容,如果未能解决你的问题,请参考以下文章

越狱设备 [UIDeviceRGBColor superview] 上 loadNibNamed 时可能崩溃:无法识别的选择器

检测应用的内存泄漏情况(shell)

如何防止java中的内存泄漏

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

如何在 grafana 中创建普罗米修斯图来划分两个查询?

技术活!如何将你的女友修得更性感。