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