Литералы Constant String, такие как @"nits"
, жестко запрограммированы в двоичные файлы Objective-C.Строковые константы, такие как nits
и nuts
, должны быть определены как константа литерал , так как они также жестко закодированы.Присвоение nuts = nits
не работает, потому что nits
не является константным строковым литералом, хотя переменная постоянна во время выполнения.
Есть два способа исправить это:
- напишите строковый литерал
@"nits"
дважды - используйте
#define
Это может выглядеть так:
#define NitsNutsString @"nits"
NSString* const nits = NitsNutsString;
NSString* const nuts = NitsNutsString;
В качестве альтернативы вы можете использовать #define
s, но их нельзя экспортировать в заголовок так же чисто, как строки const.