Переменная типа NSString *const
всегда будет инициализироваться до запуска вашего кода, при условии, что мы игнорируем капризы C ++ на данный момент:
NSString *const MY_PROTOCOL_SIZE = @"...";
Переменная типа const NSString *
(ключевое слово const
применение к кишкам NSString
, а не к его адресу) может быть изменено любым кодом, но не может иметь отправленные ему сообщения.Это побеждает цель сделать это const
.Вместо этого рассмотрим глобальную функцию:
static NSString *GetMyProtocolSize(void) {
return [[MyClass someStringLoadedFromAFile] ...];
}
Или используйте метод класса:
@implementation MyClass
+ (NSString *)myProtocolSize {
return [[MyClass someStringLoadedFromAFile] ...];
}
@end
Ранее вы задавали вопрос о том, почему строки const
не принимают динамические значения--это потому, что вы, кажется, не понимаете, что const
делает с символом.Вы должны прочитать значение ключевого слова const
в C и рассмотреть другой подход к получению строк, если const
не правильный.