В D, как передать пустую строку?(для gtkD)
Вопрос
Использование 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, чтобы вернуть "";(удалите .dup).
Другие советы
Вы должны написать assert(empty !равно null) вместо assert(empty != null)
Я использовал "\0"
и, похоже, это сработало,
Я не знаю, попал ли какой-либо невидимый символ в текстовое поле, но это основано на предположении, что пустая строка в C - это просто \0