Lua:尝试索引字段“?”(值为nil)
2011-8-29 7:37:56
收藏:0
阅读:115
评论:3
我刚开始学习lua,并且我有一些代码来自于一个有意留下错误的人。现在我在处理以下代码时遇到了错误:
function SIM_Utils:ClickButton(app, buttonName)
page = app:getTopPage()
widgets = page:getWidgets(buttonName)
print (type(widgets))
print (widgets[1])
widgets[1]:click(true, 5000)--this yields "attempt to index field '?' (a nil value)"
widgets[1]:click(false,0)--this yields "attempt to index field '?' (a nil value)"
app:captureScreen()
end
这将导致以下结果:
table
WidgetCommon (09590790)
L.E.
运行Alex发布的结果如下:
widgets=
table: 0A45CF28
1
WidgetCommon (09590790)
table: 0A...这是我正在寻找的答案吗?
L.E. 2:重贴整个函数,因为似乎问题导致函数出错。
原文链接 https://stackoverflow.com/questions/7222187
点赞
stackoverflow用户63791
尝试运行以下代码:
widgets = page:getWidgets(buttonName)
print("widgets=", widgets) -- 应该打印出类似于 "Widgets= 0x12345678" 的内容。如果没有,则表明 widgets 为 nil,也就是什么都没有。
for k, v in pairs(widgets) do
print(k, v)
end
这将确保您拥有一个 widgets
表,如果有的话,它将告诉您其中包含的内容。如果您在索引为 1 的位置上没有任何东西,那么问题就出在这里:page:getWidgets(buttonName)
并没有像您期望的那样返回一个小部件列表。
2011-08-28 17:35:03
stackoverflow用户450259
似乎不太可能,但是有可能(确切的说,从您发布的信息来看,这似乎是唯一的可能性)是您使用的库抛出了错误,而不是您的代码。请注意,当 Lua 中抛出错误时,抛出错误的代码可以告诉 Lua 显示错误是由您调用的代码引起的,而非库代码。这只应用于像“Widget::show 的错误参数”这样的逻辑错误,而不是像您遇到的情况。但这是有可能发生的。此外,在 C 函数中的错误会显示出类似于它来自您的代码的效果。例如:
io.open("myFile").read() --> 应该是 ":read",而不是 ".read"
stdin:1: attempt to index a nil value
stack traceback:
stdin:1: in main chunk
[C]: ?
您是否有堆栈回溯信息来显示错误?
2011-08-29 20:16:59
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
什么是
page:getWidgets
返回的呢?你可以使用print(type(widgets))
检查它。如果它是一个表格,则该表格中未定义数组位置1(你可以使用pairs
函数遍历表格内容)。如果它不是表格,则你正在尝试查找不是表格的东西上的索引,这是行不通的。此外,由于你是 Lua 的新手,请注意
page:getWidgets
不是内置组件。因此,你需要加载此功能或使用提供此功能的适当衍生应用程序。