使用lua中的for循环删除数组中的项目

时间:2013-03-26 02:22:11

标签: lua corona

我正在尝试使用for循环来销毁我的数组中的对象,如下所示:

for item in self.objects do
    item:removeSelf()
end

self.objects是我的数组,它包含我用于动画的图像。如果我触摸其中一个动画对象,它应该被销毁(消失)。我的问题是,我收到此错误消息:

  

尝试调用表值

我不知道为什么我会收到此错误以及如何修复它,所以有人可以解释一下如何在触摸事件期间从数组中删除对象以及为什么我收到此消息?提前致谢。 :D

1 个答案:

答案 0 :(得分:5)

形式for x in y do...的泛型for循环期望y成为迭代器函数。你传递的是一张表,因此就是错误信息。

如果您只想迭代表格中的每个条目,请使用pairs

for key, item in pairs(self.objects) do
  item:removeSelf()
end

有关泛型和迭代器的更多信息,请参阅PiL 4.3.5和所有Chapter 7