Глобальные настройки iphone - лучший способ реализовать это? - PullRequest
2 голосов
/ 19 февраля 2010

Я хотел бы иметь некоторые настройки, к которым я могу получить доступ из любого места в моем приложении. Есть ли лучший способ реализовать это? Прямо сейчас я просто прикрепляю свойства в своем делегате приложения, затем получаю доступ к ним с помощью:

ClientAppDelegate *appDelegate = (ClientAppDelegate *)[[UIApplication sharedApplication] delegate];
settingValue = appDelegate.setting;

Ответы [ 2 ]

4 голосов
/ 19 февраля 2010

Если они постоянны, используйте NSUserDefaults . Если это не так, поместите их в класс и укажите каждому классу, который нуждается в них, указатель. В каждом случае вы, вероятно, должны сделать возможным изменение соединения с объектом конфигурации, чтобы (1) зависимость стала очевидной («ага, поведение этого кода зависит от конфигурации») и (2) вы можете предоставить пользовательский объект конфигурации в целях тестирования. Мишко Хевери предлагает большое количество статей о синглетонах, сцеплении и тестировании. Вы можете начать с поста под названием «Одиночки - это патологические лжецы» , и оттуда вы добьетесь успеха.

1 голос
/ 19 февраля 2010

Использование NSUserDefaults - это надежный и простой способ хранения настроек приложения, который сохраняется даже между запусками приложений.

...