2013-06-14 5 views
0

Im мой AppDelegate.hВ iOS, где находится подходящее место для хранения значений конфигурации?

Я просто определены константы:

#define XXDefaultFeedbackRecipent @"[email protected]" 
#define XXDefaultFeedbackSubject @"Feedback" 

Что такое правильное место, чтобы определить эти типы установок? Они не являются пользовательскими настройками, но у них есть возможность перейти от одного выпуска к другому.

+0

Вы можете создать конфигурацию 'plist', такую ​​же, как файл' Info.plist', и добавить его в свой комплект. – Amar

ответ

1

Там нет правильного места, но вы можете либо поместить его в файл «константа» (я обычно создаю класс с именем константы, удалить интерфейс и реализацию класса и сохранить файлы для этой цели), или в классе, в котором вы используете эти определения.

Лучший способ сохранить эти данные, однако, использовать следующее:

// in your .h file 
extern NSString * const XXDefaultFeedbackRecipent; 

// in your .m file 
NSString * const XXDefaultFeedbackRecipent = @"[email protected]"; 

P.S. существует конвенция о написании #defines, которая хочет, чтобы вы записывали имена своих #defines заглавными буквами со словами, разделенными символом подчеркивания (например, MY_DEFINE). Это делается для предотвращения столкновений с другими вещами в библиотеках C и других файлах. Помните об этом при написании #defines.

0

Вы можете сохранить их как константы в своем классе и получить к ним доступ через extern в вашем .h-файле. Я бы также рекомендовал использовать consts для безопасности типов.

In your .h 

extern NSString * const XXDefaultFeedbackRecipent; 
extern NSString * const XXDefaultFeedbackSubject; 

In your .m 

NSString * const XXDefaultFeedbackRecipent = @"[email protected]"; 
NSString * const XXDefaultFeedbackSubject = @"Feedback"; 
0

Я рекомендую подход, поясняющий другие ответы. Использование extern NSString * const

Избегайте #defines для такого рода вещей, как везде, где вы ссылаетесь, будет выделен новый NSString. Не проблема, если вы ссылаетесь только на нее один или два раза, но далеко не оптимальный.

Будьте осторожны, чтобы не использовать это. Для значений конфигурации конечные точки службы и т. Д. Рассматривают использование plist для хранения значений. Это упрощает редактирование значений конфигурации и обеспечивает дополнительную гибкость при настройках непрерывной интеграции, нескольких средах обслуживания и удаленных конфигурационных обновлениях посредством push-уведомления.

Смежные вопросы