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

use*_*438 1 lua coronasdk

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

for item in self.objects do
    item:removeSelf()
end
Run Code Online (Sandbox Code Playgroud)

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

尝试调用表值

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

fur*_*urq 5

表单的泛型for循环for x in y do...期望y是迭代器函数.你传递一个表,因此错误信息.

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

for key, item in pairs(self.objects) do
  item:removeSelf()
end
Run Code Online (Sandbox Code Playgroud)

有关泛型和迭代器的更多信息,请参见PiL 4.3.5第7章的全部内容.