我正在开发我的第一个 iPhone 应用程序,在实现用户偏好时,我对如何最好地实现它有几个问题。
假设基本的 MVC 模式:MainView 显示存储在 Model 对象中的数据;MainViewController 处理应用程序逻辑。
对于选项,我有一个 OptionsView 和一个 OptionsViewController。RootViewController 处理 Main 和 Options 视图的交换。
首先,期权数据呢?我想创建一个 NSOjbect 派生类来存储它们(一个 OptionsModel)吗?或者一个简单的 NSDictionary 就足够了?
其次,谁拥有期权数据?它们是应用程序首选项,但将它们存储在 AppDelegate 中似乎是错误的。MainViewController 主要关心选项,而 OptionsViewController 需要编辑它们,但那些人彼此不了解,他们也不应该,可能。RootViewController 知道这两者,所以他可以很好地在它们之间传递选项,但同样,这似乎是错误的。
最后,MainViewController 将经常需要访问这些选项。他应该每次调用选项模型以获得一些选项,还是缓存他自己的副本?我不喜欢额外开销来检索选项数据的想法,但是让 MainViewController 具有可能不同步的副本也不是很吸引人。