En D, la forma de pasar una cadena vacía? (A gtkD)
Pregunta
Uso de D1 con phobos
Tengo un campo de entrada de texto, instancia de gtk.Entry.Entry
,
setText("")
llamando plantea un error de tiempo de ejecución
Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
¿Por qué? Parece ser un problema con D, he intentado esto:
string empty = "";
assert (empty != null);
my_entry.setText(empty)
El programa termina como la afirmación no.
¿Cómo puedo evitar esto?
Solución
No creo que realmente diferencia entre D "cadena vacía" y "cadena nula". Una solución barata sería setText (" ").
[editar] No importa que. Es un error en gtkD. en el baúl / src / labia / Str.d (WM4 gracias por encontrarlo), cambiar la línea 147 para volver ""; (Quitar la .dup).
Otros consejos
Usted debe escribir afirmar (vacío! Es nulo) en lugar de afirmar (vacío! = Null)
He utilizado "\0"
y parece que ha funcionado,
No sé si cualquier carácter invisible se metió en el campo de texto, pero esto se basa en la suposición de que una cadena vacía en C se acaba \0