我在我的Vala应用程序中使用GSettings来存储一些数据。我的一个字段应该存储日期。Vala 中管理日期和时间的所有函数都返回 int64 值。
我知道如何在 GSettings 架构中存储 int 值,但我想在不将 int64 转换为 int 的情况下做到这一点。
我知道现在这不是问题,我可以安全地将 int64 DateTime
转换为 int,但有一天它会溢出并且无法正常工作。
那么,问题来了:在 GSettings 中存储 int64 是否可能?如果是,如何?
任何Variant
类型。int64
的类型字符串是 x
。然后,您可以使用Variant.int64
创建新的多属性,并GLib.Settings.get_value
GLib.Settings.set_value
对其进行操作。
在大多数情况下,Vala 还可以自动封送Variant
类型。如果架构设置正确,只需使用 int64
调用 set_value
,它就会自动编组。同样,如果你将get_value
的回归投射到int64
,它将是解封的。