Вы должны объявить вашу постоянную строку следующим образом:
NSString * const kSomeConstantString = @""; // constant pointer
вместо:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
Первый является постоянным указателем на NSString
объект, а второй - указателем на постоянный NSString
объект.
Использование a не NSString * const
позволяет переназначить kSomeConstantString для указания на другой NSString
объект.
Метод isEqualToString:
ожидает аргумент типа NSString *
. Если вы передаете указатель на константу string ( const NSString *
), вы передаете что-то отличное от ожидаемого.
Кроме того, NSString
объекты уже неизменны, поэтому создавать их const NSString
бессмысленно.