Tengo este extraño problema probando la propiedad de texto vacío (o nulo). Aquí mi configuración: Tengo una vista con 6 campo de texto en el mismo y que aquí el código que utilizo para ir a través de los campo (cargado en una matriz de NSMutable) ...UITextField: prueba de propiedad de texto para cadena vacía o nulo o nulo no funciona
NSEnumerator *portsEnumerator = [appliancePorts objectEnumerator];
UITextField *tmpField;
newSite.port = [NSMutableArray array];
while (tmpField =[portsEnumerator nextObject]) {
NSLog(@"value:%@",tmpField.text);
if (![tmpField.text isEqualToString:nil]) {
[newSite.port addObject:(NSString *)tmpField.text];
}
}
Cuando estoy en esta interfaz y escriba algún texto en las dos primeras campo y la ficha "sólo" el campo remaning y el botón "Done" esto es lo que tengo de salida GDB:
2010-08-10 20:16:54.489 myApp[4883:207] value:Value 1
2010-08-10 20:16:58.115 myApp[4883:207] value:Value 2
2010-08-10 20:17:02.002 myApp[4883:207] value:
2010-08-10 20:17:13.034 myApp[4883:207] value:
2010-08-10 20:17:15.854 myApp[4883:207] value:
2010-08-10 20:17:17.762 myApp[4883:207] value:
sé que si pongo a prueba de cadena vacía que debería funcionar porque la propiedad de texto al volcar a la consola muestra esto:
UITextField: 0x5d552a0; frame = (20 8; 260 30); text = ''; clipsToBounds = YES; opaque = NO; tag = 1; layer = CALayer: 0x5d54f20
Pero el problema REAL comienza cuando retrocedo la vista, ingrese un texto en los dos primeros campos y el botón "Hecho" inmediatamente después (no pasando por el otro campo para que no se enfoquen). Esto es de nuevo la salida GDB ...
2010-08-10 20:23:27.902 myApp[4914:207] value:Value 1
2010-08-10 20:23:31.739 myApp[4914:207] value:Value 2
2010-08-10 20:23:34.523 myApp[4914:207] value:(null)
2010-08-10 20: 23: 56.443 myApp [4914: 207] * Terminación de aplicación debido a excepción no detectada 'NSInvalidArgumentException', razón: '* - [NSMutableArray InsertObject: atIndex:]: intento de insertar objeto nulo en 2'
por lo tanto, los problemas evidentes es que la primera isEqualtoString:nil
no funciona y en segundo lugar, ¿cómo es que este cambio de texto '' a nulo en cuestión de poner el foco en el campo.
Entonces, ¿hay una mejor manera de probar el campo vacío?
Gracias!
si está utilizando UITextView continuación http://stackoverflow.com/a/8238742/1660139 – Haider
si está utilizando UITextView entonces este enlace ayudaría http://stackoverflow.com/a/8238742/1660139 – Haider