Когда вы сравниваете две переменные-указатели, вы фактически сравниваете адреса в памяти, на которые указывают эти две переменные. Единственный случай, когда такое выражение верно, когда у вас есть две переменные, указывающие на один объект (и, следовательно, на тот же адрес в памяти).
Для сравнения объектов общим подходом является использование isEqual:
, определенного в NSObject
. Такие классы как NSNumber
, NSString
имеют дополнительные методы сравнения с именами isEqualToNumber:
, isEqualToString:
и так далее. Вот пример для вашей ситуации:
if ([txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];
Если вы хотите что-то сделать, если NSString
на самом деле не пустой, используйте символ !
, чтобы изменить значение выражения. Вот пример:
if (![txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];