删除表中所有对象的最佳方法

时间:2015-04-06 20:04:12

标签: arrays lua corona lua-table

for i = 1, #allblocks do      to remove all objects in the table
Removing_block = table.remove(allblocks, 1)
Removing_block:removeSelf() 
Removing_block=nil
end

这是我发现的最佳方式。 有人有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

这是最简单的方法:

for i = 1, #allblocks do
  allblocks[i]:removeSelf() 
  allblocks[i] = nil
end

答案 1 :(得分:2)

详细说明Etan的评论:

将您的代码更改为:

for i = #allblocks, 1, -1 do
  Removing_block = table.remove(allblocks, i)
  Removing_block:removeSelf()
  Removing_block = nil
end

我猜是因为某种原因你无法做到

allblocks = {}

要重置吗?它实际上是在做同样的事情,它出现了。

答案 2 :(得分:1)

假设:表是一个索引为1..n

的列表

鉴于table.remove()也返回刚刚删除的项,最简单(最短)的方式可能就是这样:

for i = 1, #allblocks do
  table.remove(allblocks):removeSelf()
end