Debe declarar su cadena constante de la siguiente manera:
NSString * const kSomeConstantString = @""; // constant pointer
en vez de:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
El primero es un puntero constante a un NSString
objeto, mientras que el segundo es un puntero a un NSString
objeto constante .
El uso de le NSString * const
impide reasignar kSomeConstantString para apuntar a un NSString
objeto diferente .
El método isEqualToString:
espera un argumento de tipo NSString *
. Si pasa un puntero a una cadena constante ( const NSString *
), está pasando algo diferente de lo esperado.
Además, los NSString
objetos ya son inmutables, por lo que hacerlos no const NSString
tiene sentido.