Определение глобально доступной строки в Objective-C - PullRequest
18 голосов
/ 17 августа 2010

Каков наилучший способ определения глобально доступной строки?

Я вижу, что для целых чисел это обычно так #define easy 0

Однако, как я могу эмулировать это для NSString?
Я пробовал статический NSString *BACKGROUND = @"bg.png";
Хотя эта работа и выдает предупреждение о том, что переменная никогда не используется. (У меня есть все это в файле .h)

Выполнение NSString *const BACKGROUND = @"bg.png"; еще хуже, поскольку при импорте файла появляется дублирующаяся переменная.

Я вижу, что #define BACKGROUND @"bg.png", похоже, тоже работает.

Так что я думаю, в чем разница между тем, когда использовать #define, const & static

Спасибо
Тройник

Ответы [ 2 ]

43 голосов
/ 17 августа 2010

Это правильный способ сделать это.Создайте новый пустой файл .h и .m.В вашем .h файле:

extern NSString* const BACKGROUND;

В вашем .m файле:

NSString* const BACKGROUND = @"bg.png";
6 голосов
/ 17 августа 2010

Возможно, вы захотите использовать список свойств для хранения ваших строк. Это позволяет вашему коду оставаться гибким для будущих обновлений, особенно если вы добавите поддержку локализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...