iOS сравнивает заголовок кнопки со строкой - PullRequest
6 голосов
/ 11 марта 2011

Я только учусь кодировать, поэтому спасибо за ваше терпение по этому простому вопросу.

Вот мой код:

- (IBAction)buttonWasPressed:(id)sender {  
    NSString *buttonName = [sender titleForState:UIControlStateNormal];  
    if (buttonName == @"Button 1") {  
        do something 
    }

Как сравнить заголовок пройденной кнопки?как отправитель в строку?

Большое спасибо за помощь.

Ответы [ 4 ]

9 голосов
/ 11 марта 2011

в target-c вы не можете сравнивать строки, используя "==", вместо этого вы должны использовать метод isEqualToString из класса NSString для сравнения строки с другой.

if ([buttonName isEqualToString: @"Button 1"]) {
  // do something
}
3 голосов
/ 11 марта 2011

Используйте метод -isEqualToString:

if ([buttonName isEqualToString:@"Button 1"])
   ...

используя == вы сравниваете значения, а не фактические строковые значения, которые они содержат

1 голос
/ 09 февраля 2013

Лучший способ сравнить строку:

NSString *string1 = <your string>;
NSString *string2 = <your string>;

if ([string1 caseInsensitiveCompare:string2] == NSOrderedSame) {
    //strings are same
} else {
    //strings are not same
}
0 голосов
/ 19 апреля 2017

Я обнаружил, что с Xcode 8.3.1 необходимо сделать:

if([self.myButton isEqual: @"My text"]) {
//do this
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...