rob*_*ene 5 iphone cocoa-touch core-data objective-c
以Apple的Mail应用程序为例; 假装它使用核心数据.当您触摸电子邮件帐户时,它会显示该帐户中的所有邮件.因此,控制器对该帐户中的所有消息执行了获取请求.
然后,您触摸消息并深入钻取一个级别,现在您正在查看单个消息.此消息可能是从消息列表控制器传递的,但是 - 您还可以单击右上角的三角形来浏览同一电子邮件帐户中的所有消息.这意味着用于查看单个电子邮件消息的视图控制器也需要完全相同的消息列表.
因此,您可以从列表视图中剪切并粘贴获取请求逻辑,但这不是DRY /不重复自己.
有关解决此问题的最佳实践的建议吗?
我一直用来解决这个问题的解决方案是使用委托设计模式。即,在具有rootViewController 和detailViewController 的应用程序中,rootViewController 充当detailViewController 的委托。
因此,例如,当用户正在查看电子邮件消息(在详细信息视图上)时,他们单击按钮以迭代到新消息,则detailViewController通过委托方法通知rootViewController rootViewController需要显示新消息信息。
这样,detailViewController 只需要了解一个模型对象(正在显示的电子邮件)的信息。rootViewController 处理涉及其余对象的交互。
对我来说,这是一个很好的责任划分,所以这就是我一直在使用的解决方案。
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |