使用 Lua 中的 for 循环从数组中删除项

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

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

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

尝试调用表值

我不确定为什么会出现这个错误,以及如何修复它,所以有人可以解释一下如何在触摸事件期间从我的数组中删除对象以及为什么我会收到这个消息吗?先感谢了。:D

点赞
用户1516484
用户1516484

一般形式为for x in y do ...for循环期望y是一个迭代器函数。你传递给它的是一个表,因此会出现错误消息。

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

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

有关通用的for和迭代器的更多信息,请参见PiL 4.3.5第7章

2013-03-26 02:36:15