Несколько проблем:
- В C (и Objective-C) один знак равенства, который вы использовали, используется для назначения, а не для сравнения
- Во-вторых, правильный способсделать сравнение строк в Objective-C это использовать метод
NSString
isEqualToString:
- Objective-C использует
nil
вместо null
- В Objective-C указатель равен нулюзначение будет равно false, поэтому вместо использования
isEqual
вы можете просто проверить !secretPin
(который вернет true, если secretPin равен nil) - Как уже отмечали другие, ваши скобки неправильно установлены в ваших условных выражениях
Итак, более корректная перезапись:
if ( [self.nametextfield.text isEqualToString:@""] || !secretPin ) {
// do something
}
РЕДАКТИРОВАТЬ:
Также обратите внимание, что я отредактировал этот пример, так что nametextfield
теперь является свойствомself
(где self
в данном случае - ваш View Controller).Ошибка «неожиданный идентификатор» заставляет меня думать, что вы неправильно подключили свой объект текстового поля (созданный в раскадровке или в файле XIB) к контроллеру представления.Вы должны быть уверены, что объявляете текстовое поле как свойство вашего контроллера представления, например, в файле заголовка (.h):
@property (nonatomic, weak) IBOutlet UITextField* nametextfield;
и синтезируете свойство в файле реализации (.m):
@synthesize nametextfield;
и затем присоедините UITextField в вашей раскадровке или XIB к этому IBOutlet.