2016-01-25 6 views
-1

, когда я ввести любой символ или число с keyboard.the аварии приложения с этой информациейNSNull длина аварии с TextField,

«Нагрузочное приложением из-за неперехваченное исключением „NSInvalidArgumentException“, причину:«- [длина NSNull ]: непризнанный селектор отправлен в экземпляр 0x103b5daf0 '".

И каждое текстовое поле, используемое в приложении, имеет эту проблему. Текстовое поле находится в приложении на основе рассказов. this is the textfield delegate i overwrite и this is the exception throw call stack

+0

Прежде всего, если вы проверите строку, используйте 'isEqualToString:', а затем просто проверьте, является ли это 'nil' или если' textField.text.length == 0' – LoVo

+0

Вы реализовали диапазон 'shouldChangeCharactersInRange: (NSRange) replacementString: (NSString *) string' delegate? –

+0

Вставьте исходный код вместо скриншотов. –

ответ

0

заменить ([textField.text isEqual:[NSNull null]]) на (textField.text.length == 0).

+0

@trojanfoe да, и 'NSNull' ** неправильно ** здесь !!! – Justlike

0

В соответствии с вашим exception throw call stack этот сбой вызван этим методом [textfield.text isEqual: [NSNull null]] `. Вы можете использовать этот код:

if (textfield.text){ 

} 

Или

if ([textfield.text isEqualToString:@"your text"]){ 

} 

textfield.text является объектом, класс NSString и [NSNull нуль] также объект, который представляет пустой объект.

1

Проблема, вероятно, в том, что вы где-то задали текстовое свойство textField для NSNull (что является ошибкой).

Это не (как и в других ответах) сравнение [textField.text isEqual:[NSNull null]], что приводит к ошибке. Эта строка вздор, но не может привести к сбою.

Поиск мест, в которых вы устанавливаете свойство текстового поля text, и убедитесь, что значение всегда имеет тип NSString.

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