Tengo una clase con un método accesible que devuelve un NSString
cuando se llama.Si "a == b" es falso al comparar dos objetos NSString
[MyClass getMyString]
La variable de cadena en esa clase se asigna realmente en la parte didSelectRowAtIndexPath:
de una tabla como la siguiente:
myString = cell.textLabel.text;
Cuando recupero la cadena llamando a ese método, que asignarlo a otra cadena de la clase que lo llamó y compararla con una cadena que he definido
NSString *mySecondString;
mySecondString = @"my value";
if(mySecondString == myString){
i = 9;
}
he caminado a través del código y cada vez que se evalúa la instrucción if, que s salta inmediatamente después del i=9
y va a la siguiente declaración else if
. ¿Por qué sería esto? ¿Por qué no evalúan para ser del mismo valor? Si coloca el cursor sobre cada uno de los valores durante la depuración, mostrarán que tienen el mismo valor, pero el código por alguna razón no funciona como esperaba y asigne 9
a i
.
¿Alguna idea?
Me sorprende que una búsqueda en este sitio no haya arrojado ningún resultado. Esta pregunta ha sido formulada y respondida en numerosas ocasiones en el pasado. – dreamlax
Tal vez no lo pregunté de la manera correcta cuando busqué antes de preguntar ... - vi muchas preguntas que trataban con CFString y asignándolas a NSString, pero no vi a qué respondió rápidamente Kevin Ballard. ¡Gracias! – MeisterPlans
posible duplicado de [Comprender la comparación de NSString] (http://stackoverflow.com/questions/3703554/understanding-nsstring-comparison) –