In D, wie eine leere Zeichenfolge zu übergeben? (To gtkD)
Frage
Mit D1 mit phobos
Ich habe ein Texteingabefeld Instanz gtk.Entry.Entry
,
Aufruf setText("")
wirft einen Laufzeitfehler
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
Warum? Es scheint ein Problem mit D zu sein, habe ich versucht, dies:
string empty = "";
assert (empty != null);
my_entry.setText(empty)
Das Programm wie die Behauptung beendet ist fehlgeschlagen.
Wie kann ich dieses Problem umgehen?
Lösung
Ich glaube nicht wirklich D zwischen „leeren String“ und „null string“ unterscheiden. Eine günstige Abhilfe würde setText (“„) werden.
[Bearbeiten] Nevermind, dass. Es ist ein Fehler in gtkD. in trunk / src / glib / Str.d (dank WM4 es für die Suche), ändern Linie 147 zurückzukehren ""; (Entfernen Sie die .dup).
Andere Tipps
Sie sollten schreiben behaupten (leeren! Null ist) anstelle von assert (leer! = Null)
Ich habe "\0"
und es schien, zu arbeiten
Ich weiß nicht, ob irgendein unsichtbaren Zeichen in das Textfeld bekamen, aber dies wird auf der Annahme basiert, dass ein leerer String in C ist nur \0