2013-04-11 4 views
0

У меня есть этот код: (nomEquipo является переменным классом UITextField)UITextField.text свойство возврата ноля

nomEquipo = [[UITextField alloc] initWithFrame: CGRectMake(5, yPosition, modificar.frame.size.width - 10, 30)]; 
[nomEquipo setPlaceholder: @"Nombre del equipo"]; 
[nomEquipo setBorderStyle: UITextBorderStyleRoundedRect]; 
[nomEquipo setAutocorrectionType: UITextAutocorrectionTypeNo]; 
[nomEquipo setReturnKeyType: UIReturnKeyDone]; 
[nomEquipo addTarget: self action: @selector(ocultarTeclado:) forControlEvents: UIControlEventTouchUpInside]; 
[modificar addSubview: nomEquipo]; 

затем в другом методе:

- (IBAction) crearEquipoReal:(id)sender 
{ 
    NSLog(@"%@",nomEquipo.text); 
    if ([nomEquipo.text length] == 0) 
    { 
     UIAlertView *alerta = [[UIAlertView alloc] initWithTitle: @"Aviso" 
                 message: @"Debe introducir al menos el nombre del equipo" 
                 delegate: self 
               cancelButtonTitle:@"Aceptar" 
               otherButtonTitles:nil, nil]; 
     [alerta show]; 
    } 
} 

Этот NSLog возвращает:

2013-04-11 15:40:10.184 GeoRuta_v1[7157:907] (null) 

Код, в который я помещал текст в UITextFields:

-(void)didChangeComboBoxValue:(AJComboBox *)comboBox selectedIndex:(NSInteger)selectedIndex 
{ 
    if (comboBox == self.combo) 
    { 
     equipoActual = (Equipo *) [listaEquipos objectAtIndex: selectedIndex]; 
     nomEquipoActual = equipoActual.nombreEquipo 
     user.idEquipo = equipoActual.idEquipo; 
    } 
    else if (comboBox == self.equiposMod) 
    { 
     Equipo *aux = (Equipo *) [listaEquiposMod objectAtIndex: selectedIndex]; 
     user.idEquipo = aux.idEquipo; 
     descEquipo2.text = aux.descEquipo; 
     nomEquipo2.text = aux.nombreEquipo; 
    } 
} 

Мое удивление приходит, когда это случается внезапно, он работал в течение 2 дней, я запрограммировал его.

Благодарим за помощь.

EDIT1: * [FIX] Я установил с 2 UITextField, потому что я генерировал, что nomEquipo дважды .... :(

+1

Я не могу видеть код где вы 'задаете текст nomEquipo' –

+0

Ev если текст не был установлен, он не будет равен нулю, это будет пустая строка, если nomEquipo был инициализирован. Я думаю, что проблема в nomEquipo равна нулю. –

+0

это ARC или MRC? –

ответ

2

Вполне вероятно, что указатель nomEquipo ссылается ноль, и именно поэтому вы видя (нуль). объекты Nil могут получить селекторы, они просто возвращают ноль.

Вы должны отладить код с точкой останова и «ро nomEquipo» в консоли перед тем, что код выполняет.

+0

Я понимаю это, но в любом случае я исправил это, кстати: вот почему я приму свой ответ. – rokimoki

+0

@BenM Заменить любое использование «null» в вашем ответе «nil». В Objective-C стандартная практика заключается в использовании 'nil', а не' null'. – rmaddy

Смежные вопросы