如何在关闭窗口时释放子视图

时间:2014-03-01 12:46:54

标签: ios objective-c rubymotion

我正在使用Rubymotion构建iOS应用。 我已经开始使用Apple Instruments来检测内存泄漏。 当我在我的应用程序中打开一个新窗口时,该窗口包含一个tableview然后 我关闭窗口仪器仍然说它是“活着的”。 因此,每次打开和关闭窗口时,tableview的活动变量都会不断增加。

我认为关闭窗口上的所有视图都会在关闭时删除,但事实并非如此。 我也试过这个“空”它但没有区别(我正在使用ProMotion)。

def will_dismiss

 @table = nil

end

如何解除分配子视图的想法?

1 个答案:

答案 0 :(得分:1)

使用实例变量自动释放池是RubyMotion纠正“自动内存管理”的最佳建议。他们仍在改进GC(并试图更接近标准的Ruby GC)similar to ARC by design。因此,如果您想确保GC将收集一些var,您必须将其用于autorelease池块中。这种方法可以保证清理和避免意外的内存泄漏。

autorelease_pool do
   @table
end