[英]attempt to call method 'insert' (a nil value)
為什么我attempt to call method 'insert' (a nil value)
在包含insert
的行上attempt to call method 'insert' (a nil value)
錯誤?
將它更改為instance.sprites = bg
確實可以使它工作,但我想在一個單獨的表(精靈)中返回所有精靈。
local writingTool = {}
local _W, _H = display.contentWidth, display.contentHeight
function writingTool:new()
local instance = {}
instance.index = writingTool
setmetatable(instance, self)
instance.sprites = {}
local bg = display.newImage("images/backgrounds/wooden_bg.png")
bg.x = _W/2
bg.y = _H/2
instance.sprites:insert(bg)
return instance
end
return writingTool
編輯:嘗試instance.sprites.bg = bg
也不起作用。 給出這個錯誤:
bad argument #-2 to 'insert' (Proxy expected, got nil)
instance.index = writingTool
應該
instance.__index = writingTool
雖然我會刪除上面的行並在下面的一行中實現它,如下所示:
setmetatable(instance,{__index=writingTool})
此外, t:insert()
或t.insert()
默認情況下未定義,要將元素插入到表中,請使用table.insert
函數,如下所示:
table.insert(table,[pos,] value)
所以你應該有table.insert(instance.sprites,bg)
。 因此,通過這些修改,您的功能應如下所示:
function writingTool:new()
local instance = { sprites = {} }
setmetatable(instance, {__index = wirtingTool})
local bg = display.newImage("images/backgrounds/wooden_bg.png")
bg.x = _W/2
bg.y = _H/2
table.insert(instance.sprites,bg)
return instance
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.