Я использую static const в своих файлах заголовков так:
static NSString * const myString = @"foo";
Но прочитали, что это не "безопасный" или правильный способ сделать это. По-видимому, если я хочу, чтобы мои константные строки были доступны из другого класса, я должен был объявить строку в моем .h как:
extern NSString * const myString;
Затем в файле .m:
NSString * const myString = @"foo";
Это правильно? Если да, то в чем причина не объявлять его как static непосредственно в моем .h файле? Он отлично работает, и я не вижу никаких проблем с безопасностью. Это const, поэтому он не может быть изменен извне и что-то, что я намеренно нуждаюсь в доступе за пределами класса. Единственное, что я могу придумать, это скрыть значение строки?