方法
GLibVariantBuilderinit
since: 2.24
声明 [src]
void
g_variant_builder_init (
GVariantBuilder* builder,
const GVariantType* type
)
描述 [src]
初始化一个 GVariantBuilder
结构体。
type
不能为 NULL
。它指定要构造的容器类型。它可以是不定类型,如 G_VARIANT_TYPE_ARRAY
,也可以是确定类型,如 “as” 或 “(ii)”。可能可以构造数组、元组、字典条目和变体类型值。
如果使用静态类型,如 G_VARIANT_TYPE_*
常量之一或 G_VARIANT_TYPE ("(ii)")
宏,则使用 g_variant_builder_init_static()
而不是 g_variant_builder_init()
更高效。
在初始化构建器后,使用 g_variant_builder_add_value()
或 g_variant_builder_add()
添加值。
在添加所有子值之后,g_variant_builder_end()
释放与构建器相关联的内存并返回创建的 GVariant
。
此函数完全忽略 builder
的先前内容。一方面,这意味着可以传递完全未初始化的内存。另一方面,这也意味着如果您在现有的 GVariantBuilder
上初始化,您需要先调用 g_variant_builder_clear()
以防止内存泄露。
您不得在用此函数初始化的 GVariantBuilder
上调用 g_variant_builder_ref()
或 g_variant_builder_unref()
。如果您在自己的代码控制之外传递了 GVariantBuilder
的引用,则应该假设接收该引用的人可能会尝试使用引用计数;您应该使用 g_variant_builder_new()
而不是此函数。
Available since: 2.24
此方法不直接对语言绑定可用。
参数
type
-
类型:
GVariantType
容器类型。
数据由方法的调用者拥有。