我正在使用Rubymotion构建iOS应用。 我已经开始使用Apple Instruments来检测内存泄漏。 当我在我的应用程序中打开一个新窗口时,该窗口包含一个tableview然后 我关闭窗口仪器仍然说它是“活着的”。 因此,每次打开和关闭窗口时,tableview的活动变量都会不断增加。
我认为关闭窗口上的所有视图都会在关闭时删除,但事实并非如此。 我也试过这个“空”它但没有区别(我正在使用ProMotion)。
def will_dismiss
@table = nil
end
如何解除分配子视图的想法?
答案 0 :(得分:1)
使用实例变量和自动释放池是RubyMotion纠正“自动内存管理”的最佳建议。他们仍在改进GC(并试图更接近标准的Ruby GC)similar to ARC by design。因此,如果您想确保GC将收集一些var,您必须将其用于autorelease池块中。这种方法可以保证清理和避免意外的内存泄漏。
autorelease_pool do
@table
end