题
将 D1 与 Phobos 一起使用
我有一个文本输入字段,实例 gtk.Entry.Entry
,
呼叫 setText("")
引发运行时错误
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
为什么?看来是D的问题,我试了一下:
string empty = "";
assert (empty != null);
my_entry.setText(empty)
由于断言失败,程序终止。
我该如何解决这个问题?
解决方案
我认为 D 并没有真正区分“空字符串”和“空字符串”。一个廉价的解决方法是 setText(" ")。
[编辑]没关系。这是 gtkD 中的一个错误。在 trunk/src/glib/Str.d 中(感谢 wm4 找到它),将第 147 行更改为 return "";(删除 .dup)。
其他提示
你应该写assert(empty !is null)而不是assert(empty != null)
我用了 "\0"
这似乎有效,
我不知道是否有任何不可见字符进入文本字段,但这是基于这样的假设:C 中的空字符串只是 \0
不隶属于 StackOverflow