Você deve declarar sua cadeia constante da seguinte maneira:
NSString * const kSomeConstantString = @""; // constant pointer
ao invés de:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
O primeiro é um ponteiro constante para um NSString
objeto, enquanto o último é um ponteiro para um NSString
objeto constante .
O uso de um NSString * const
impede que você reatribua o kSomeConstantString para apontar para um NSString
objeto diferente .
O método isEqualToString:
prevê um argumento do tipo NSString *
. Se você passar um ponteiro para uma string constante ( const NSString *
), estará passando algo diferente do que o esperado.
Além disso, os NSString
objetos já são imutáveis, tornando-os const NSString
sem sentido.