UITextfield.text devuelve null

Supongamos que hay un código para un proyecto de iPhone que es:

IBOutlet UITextField* numberDisplay; @property (strong,nonatomic) IBOutlet UITextField *numberDisplay; 

en el file de implementación y

@sintetizar númeroDisplay;

en el file de implementación. También en la implementación es

  -(IBAction)numberClicked:(id)sender { UIButton *buttonPressed = (UIButton *)sender; int val = buttonPressed.tag; if ( [numberDisplay.text compare:@"0"] == 0 ) { numberDisplay.text =[NSString stringWithFormat:@"%d", val ]; } else { numberDisplay.text = [NSString stringWithFormat:@"%@%d", numberDisplay.text, val ]; } } 

Cuando ejecuto la aplicación, no se muestra ninguna pantalla en UITextfield, aunque las conexiones se hicieron con IB y se ha comprobado que se realiza al ver el inspector. Incluso como testing si agrego las líneas

  numberDisplay.text = @"a"; NSLog(@"the value is %@",numberDisplay.text); NSLog(@"the value is %@",numberDisplay); 

Obtengo "el valor es (nulo) en ambos casos. Cualquier idea.

¿Alguien puede decirme qué está mal con estas dos líneas ?. Gracias.


Gracias a todos. Comencé desde cero y ahora todo funciona. Parece que tenía un file mal labeldo.

Los objects nulos pueden recibir selectores e ignorarlos y devolver un object nulo. el caso que encuentres es así:

 [(UITextField*)nil setText:@"a"]; NSLog(@"the value is %@", [(UITextField*)nil text]); 

Asegúrate de que el campo de text no sea nulo

La siguiente línea devolverá un valor no nulo si ha configurado IBOutlet para el generador de interfaces. Se declarará en el file .h.

 IBOutlet UITextField* numberDisplay; 

Si no está estableciendo una salida a un IB, obviamente devolverá un valor nulo o deberá inicializarlo por progtwigción.

 UITextField *numberDisplay = [[UITextField alloc] initWithFrame:CGRectMake(10,10, 100,30)]; numberDisplay.font = [UIFont fontWithName:@"Verdana" size:12.0]; numberDisplay.background = [UIColor clearColor]; numberDisplay.text = @"123456789"; [self.view addSubview:numberDisplay]; NSLog(@"the value is %@",numberDisplay.text); // returns 123456789 

Parece que es posible que no esté configurando correctamente sus IBOutlets en Interface Builder.

Echa un vistazo a mi respuesta a esta pregunta , con respecto básicamente a lo mismo.

debe sintetizar correctamente el campo de text de las siguientes maneras: – Agregue la línea en .h

 @property (nonatomic, retain) UITextField *numberDisplay; 

y agrega la línea en .m

 @synthesize numberDisplay; 

y luego haz lo que hiciste. No obtendrás el valor nulo esta vez.