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 NSStringobjeto, mientras que el segundo es un puntero a un NSStringobjeto constante .
El uso de le NSString * constimpide reasignar kSomeConstantString para apuntar a un NSStringobjeto 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 NSStringobjetos ya son inmutables, por lo que hacerlos no const NSStringtiene sentido.