我正在制作一个应用程序,当我运行代码时,它出现了:`main.lua`:290:尝试索引字段(一个nil值)

我正在制作一个应用程序,当我运行代码时,它出现了:`main.lua`:290:尝试索引字段(一个nil值),lua,coronasdk,Lua,Coronasdk,我正在制作一个应用程序,当我运行代码时,出现了: main.lua:290:尝试索引字段(零值) 函数检查() 打印('检查游戏结束') 对于i=1,Balls.numChildren会 印刷品(一) 如果(Balls[i].y>display.contentHeight),则--290行 显示。移除(球[i]) 球[i]=零 if(tonumber(ballsremaine.text)检查看起来像是一个被多次调用的函数。它可以设置Balls[i]到nil表示i的任意值。大概Balls有许多插槽

我正在制作一个应用程序,当我运行代码时,出现了:
main.lua
:290:尝试索引字段(零值)

函数检查()
打印('检查游戏结束')
对于i=1,Balls.numChildren会
印刷品(一)
如果(Balls[i].y>display.contentHeight),则--290行
显示。移除(球[i])
球[i]=零

if(tonumber(ballsremaine.text)
检查
看起来像是一个被多次调用的函数。它可以设置
Balls[i]
nil
表示
i
的任意值。大概
Balls
有许多插槽,可能包含对象,也可能不包含对象。因此,在尝试对对象执行任何操作之前,更改第290行以检查插槽是否已被占用:

if (Balls[i] and Balls[i].y > display.contentHeight) then -- LINE 290

好的,我试着打印语句并查看了corona模拟器的输出,这是我得到的:

结束游戏

一,

二,

结束游戏

一,

二,


这一直持续到它到达运行时错误和
main.lua
:290:尝试索引字段(一个nil值)

你能指出“line 290”是哪一行吗?显然,第290行是包含
Balls[i]的那一行.y
显然,您试图索引一个字段,但它是
nil
与如何计算numChildren有关?如果您在
if Balls[i]
之前打印(“ball”,i)
,是否可以显示您得到的输出?
if (Balls[i] and Balls[i].y > display.contentHeight) then -- LINE 290