iPhone / цель-c, как проверить, чтобы видеть, пуст ли textfield

У меня есть типичный textfield в приложении для iPhone, и в ViewWillAppear я хотел бы сделать немного логики, используя текст в текстовом поле.

Если бы txtField.text пуст, я хотел бы, чтобы следующий textfield, txtField2 был отобран для печати.

Я пытаюсь достигнуть этого через:

if (txtField.text != @"") [txtField2 becomeFirstResponder];

но после того, как некоторое тестирование, txtField.text (пока пустой), все еще не зарегистрирует как являющийся равным»», Что я пропускаю?

9
задан oberbaum 25 January 2010 в 13:14
поделиться

2 ответа

Когда вы сравниваете две переменные указателя, вы фактически сравниваете адреса в памяти, на которые эти две переменные указывают. Единственный случай, когда такое выражение верно, это когда две переменные указывают на один объект (и, следовательно, на один и тот же адрес в памяти).

Для сравнения объектов общим подходом является использование isEqual:, определенного в NSObject. Такие классы как NSNumber, NSString имеют дополнительные методы сравнения, названные isEqualToNumber:, isEqualToString: и так далее. Вот пример для вашей ситуации:

if ([txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];

Если вы хотите что-то сделать, если NSString на самом деле не пустой, используйте ! Символ , чтобы перевернуть значение выражения. Вот пример:

if (![txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];
19
ответ дан 4 December 2019 в 07:14
поделиться

Вы должны либо проверить:

if (txtField.text.length != 0)

или

if ([txtField.text isEqualToString:@""])

, написание своего пути: (TXTField.text! = @ "") Вы на самом деле сравните указатели для строки и не их фактические строковые значения.

9
ответ дан 4 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: