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