Corona SDK 無法刪除多筆newImage的物件

程式碼如下:

NumCount = 1

function MeTouch(e)
    if e.phase == "ended" then  
        if NumCount > 5 then  
            NumCount = 1    
        end 

        if PngGroup then 
            PngGroup:removeSelf()
            PngGroup = nil
        end 

        for i = 1,NumCount do
            PngGroup = display.newImage("apple.png")          
            if i > 3 then  
            PngGroup.x = centerX + (50 * i/3) 
                PngGroup.y = 70 + (50 * (i/3)) 
            else
            PngGroup.x = centerX + (50 * i) 
            PngGroup.y = 70;
            end
        end 
        NumCount = NumCount +1
    end
end

Runtime:addEventListener( "touch", MeTouch )


每Touch一次就會刪除原來的圖片,再載入新的圖片,但是一次Touch的事件中可能會載入多張的圖片,
例如變數NumCount=2,片段程式如下:
for i = 1,NumCount do
    PngGroup = display.newImage("apple.png") 
測試的結果載入2張的圖片是沒有問題的,但是在刪除圖片時卻只會刪除最後一張,片段程式如下:
PngGroup:removeSelf()
PngGroup = nil
換句話說,雖然圖片的物件名稱都是PngGroup,但是實際上還是不一樣的2個物件,所以無法以PngGroup這個名稱來刪除多個物件

解決的方法是將PngGroup寫到Table內,例如:
local tmpTable = {}  --產生一個Table
for i = 1,NumCount do
    PngGroup = display.newImage("apple.png") 
table.insert(tmpTable,PngGroup)  --將物件新增到Table 
end 

要刪除全部的PngGroup物件時,只要將Table內的物件,一個一個刪除就可以了。
for i = #tmpTable, 1, -1 do
    local child = table.remove(tmpTable, i)    -- Remove from table
    if child ~= nil then
        child:removeSelf()
        child = nil
    end
end 

Oracle Data Gurad Archive Gap