1

次のように、forループを使用して配列内のオブジェクトを破棄しようとしています。

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

self.objectsは私の配列であり、アニメーションに使用する画像が含まれています。これらのアニメーションオブジェクトの1つに触れると、それは破壊されます(消えます)。私の問題は、次のエラーメッセージが表示されることです。

テーブル値を呼び出そうとします

このエラーが発生する理由と修正方法がわからないので、タッチイベント中に配列からオブジェクトを削除する方法と、このメッセージが表示される理由を誰かに説明してもらえますか?前もって感謝します。:D

4

1 に答える 1

5

フォームのジェネリックforループは、イテレータ関数であるとfor x in y do...想定しています。yあなたはそれにテーブルを渡しているので、エラーメッセージが表示されます。

テーブルの各エントリを反復処理するだけの場合は、次を使用しますpairs

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

ジェネリックforおよびイテレータの詳細については、 PiL4.3.5および第7章のすべてを参照してください。

于 2013-03-26T02:36:15.703 に答える