Corona定时器和内存问题。

假设我在游戏中使用计时器:

timer.performWithDelay(1000, function() end, 1)

我需要把它赋值给一个本地变量并在使用后取消吗?

local timerVar = timer.performWithDelay(1000, function() end, 1)
timer.cancel(timerVar)
timerVar = nil

请帮我解决这个问题......

点赞
用户1925928
用户1925928

如果您不希望计时器被取消,您不必存储它的引用。但是我建议不要在计时器中使用匿名函数。这会使调试更加困难,因为如果函数抛出错误,您将不知道函数的名称。

2016-01-19 14:22:21
用户148569
用户148569

cancel()方法用于在计时器完成之前停止和删除计时器。计时器完成后无需调用它。

2016-01-30 18:07:48
用户4927949
用户4927949

我觉得你可以尝试下面这个。

local timerVar = timer.performWithDelay(1000, function(e)
timer.cancel(e.source)
e.source = nil
end, 1)
2016-02-02 05:46:04