Я занимаюсь разработкой своего первого приложения для iPhone, и при реализации пользовательских настроек у меня есть несколько вопросов о том, как лучше всего это реализовать.
Предположим базовый шаблон MVC: MainView отображает данные, хранящиеся в объекте Model; MainViewController обрабатывает логику приложения.
Для параметров у меня есть OptionsView и OptionsViewController. RootViewController управляет обменом основного вида и параметров.
Прежде всего, как насчет данных опций? Хотел бы я сделать производный от NSOjbect класс для их хранения (OptionsModel)? Или может быть достаточно простого NSDictionary?
Во-вторых, кому принадлежат данные опций? Они являются префиксами приложений, но хранение их в AppDelegate кажется неправильным. MainViewController в основном заботится о параметрах, и OptionsViewController должен их редактировать, но эти парни не знают друг о друге, и, вероятно, не должны. RootViewController знает об обоих, поэтому он в хорошем состоянии для передачи опций между ними, но опять же, это кажется неправильным.
Наконец, MainViewController часто требуется для доступа к параметрам. Должен ли он каждый раз вызывать модель опций, чтобы получить какую-то опцию, или кэшировать свою собственную копию? Мне не нравится идея дополнительного извлечения данных опций, но наличие в MainViewController копий, которые могут быть не синхронизированы, также не очень привлекательно.