UITextField: тестирование свойства текста на наличие пустой строки или nil или null

Я получил эту странную проблему, тестирующую на пустое (или нулевое) текстовое свойство. Вот мои настройки: у меня есть представление с 6 текстовыми полями в нем, и вот код, который я использую для перехода по этим полям (загружается в массив NSMutable) ...

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];
    }
}

Когда я нахожусь в этом интерфейсе и введите некоторый текст в первые два поля и вкладка «просто» оставшееся поле и кнопка «Готово» вот что я получил из вывода 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:

Я знаю, что если я проверяю пустую строку, она должна работать, потому что свойство text при выгрузке на консоль покажите это:

UITextField: 0x5d552a0; frame = (20 8; 260 30); text = ''; clipsToBounds = YES; opaque = NO; tag = 1; layer = CALayer: 0x5d54f20

Но проблема REAL начинается, когда я возвращаюсь к представлению, введите некоторый текст в те же первые два поля и нажмите кнопку «Готово» сразу после (не проходя через другое поле, чтобы они не получили никакого фокус). Это снова вывод 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] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: ' * - [NSMutableArray insertObject: atIndex:]: попытка вставить объект nil в 2 '

Итак, очевидные проблемы заключаются в том, что сначала isEqualtoString: nil не работает, а во-вторых, как измените этот текст с '' на ноль, просто чтобы сфокусироваться на поле.

Итак, есть ли лучший способ проверить пустое поле?

Спасибо!

5
задан nsgulliver 14 March 2013 в 12:07
поделиться

0 ответов