我试图创建一个GArray,但始终存在相同的错误:
const GLib = imports.gi.GLib; var garray =新的GLib.Array(true,true,1);//无法构造装箱类型数组,因为它没有零args,只能包装现有的数组。 var garray =新的GLib.Array();//无法构造装箱类型数组,因为它没有零args,只能包装现有的数组。
我需要一个GArray来在GnomeKeyring.item_create_sync方法中使用它:
GnomeKeyring.item_create_sync(“登录”,4,“名称”,新GLib.Array(真,真,1)“传递”,真);
我尝试了其他类型的数组,而不是GArray,以下是错误
[] ->对象0xb5d120d0不是(null)的子类,而是一个数组new Array() ->对象0xb5e12138不是(null)的子类,而是一个数组{} ->对象0xb5d0b1b0不是(null)的子类,而是一个对象5 ->未处理的GType GArray从数字中解压GArgument"5" ->期望参数‘属性’的类型接口,但得到类型'string‘如果有人有GArray或GnomeKeyring.item_create_sync的解决方案
发布于 2015-04-29 01:05:24
阅读/usr/share/gir-1.0/GnomeKeyring-1.0.gir并搜索function name="item_create_sync"。您有所有必需的参数,在我看来,您需要一个简单的列表。GnomeObjectIntrospection将在需要时将其转换为GArray。
发布于 2019-11-06 11:48:53
GNOME Shell的回顾将在可能和必要的情况下自动转换JS和GNOME类型。如果在JS空间中创建数组并将其传递给需要GArray的函数,则如果将数组作为参数传递,Shell将进行转换。
唯一未被转换的对象是其类存在于一个空间中,而不是另一个空间中的对象。像GNOME File对象一样,因为JS没有本机文件处理程序。您可以在filestreams上使用.toString()方法将其内容作为字符串获取,也可以调用读取方法将二进制值作为整数数组来获取。
https://stackoverflow.com/questions/14920159
复制相似问题