Если "a == b" ложно при сравнении двух объектов NSString

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

[MyClass getMyString]

Строковая переменная в этом классе фактически присваивается в didSelectRowAtIndexPath: части таблицы следующим образом:

myString = cell.textLabel.text;

Когда я получаю строку, вызывая этот метод, я присваиваю ее другой строке в классе, который ее вызвал, и сравниваю ее со строкой, которую я определил

NSString *mySecondString;
mySecondString = @"my value";

if(mySecondString == myString){
    i = 9;
}

Я просмотрел код и каждый раз, когда он оценивает оператор if, он пропускает мимо i=9 и переходит к следующему else if. Почему так происходит? Почему они не оцениваются как одно и то же значение? Если во время отладки навести курсор на каждое из значений, то будет видно, что они имеют одинаковое значение, но код почему-то не делает то, что я ожидаю, и не присваивает 9 i.

Есть мысли?

6
задан jscs 1 April 2015 в 19:01
поделиться