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