IOS #define или static const для глобальных строк

У меня есть файл constants.h, который объявляет кучу строк, которые я использую во всем приложении. У меня только строки и ничего больше. Должен ли я использовать #define или статический NSString const? #define работает, но я слышал, что это не самая лучшая практика.

Ответ 1

#define - это препроцессорный макрос. Это означает, что он в основном проходит через ваш код и заменяет ваш макрос тем, что вы определили.

Если вы используете const, это будет указатель на строку в памяти. Это намного эффективнее, чем выделение одной и той же строки где бы то ни было/когда оно используется.

Для этого вам понадобятся файлы .h и .m. Ваш .h файл будет выглядеть примерно так:

extern NSString * const YOUR_STRING;

И ваш .m файл:

NSString * const YOUR_STRING = @"your string";