我的堆栈跟踪看起来像这样
/usr/lib/libglib-2.0.so.0(g_variant_iter_loop+0xb4)
/usr/lib/libglib-2.0.so.0(g_variant_get_int32+0x1c)
/usr/lib/libglib-2.0.so.0(g_variant_type_is_subtype_of+0x3c)
,代码就像:
while ((NULL != iterator) && (true == g_variant_iter_loop (iterator, "y", &extractedValue)))
{
// do something with extractedValue
}
使用GVariant通过DBUS接收数据。 也许我没有正确使用glib API,但这只失败了1%的情况。 我做错了什么,或者我错过了什么?
答案 0 :(得分:0)
当只需要一个元素时,最好使用
if(iter != NULL) {
g_variant_iter_next (iterator, "u", &value);
}