Сравнение строк в Objective-C - PullRequest
0 голосов
/ 06 ноября 2011

У меня есть массив имен, но я не могу заставить сравнение работать. У меня здесь неправильное использование языка?

NSLog(@"%@",[arrayOfNames objectAtIndex:0]);

if ([arrayOfNames objectAtIndex:0] == "Blue"){ 
  NSLog(@"it's Blue");
}
else {
  NSLog(@"it's not Blue");
}

Вывод следующий:

синий

это не синий

1 Ответ

7 голосов
/ 06 ноября 2011

Используйте следующее:

if ([[arrayOfNames objectAtIndex:0] isEqualToString:@"Blue"])

Вы сравниваете два объекта (один из id-типа, другой - C-строку) с оператором ==.Сравнение не удастся, так как это 2 разных объекта.С isEqualToString вы сравниваете значение объекта со строкой @"Blue".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...