在MVC中,您在哪里放置对模型类的引用?

Gol*_*les 15 iphone model-view-controller cocoa cocoa-touch

在询问了不同的人并且没有任何人提供我称之为"至少有点具体的答案"之后,我一直想知道一段时间:

题:

在iPhone应用程序中,应用程序应该保留对其模型类的引用(使用MVC方法)吗?

在iPhone(和Cocoa)应用程序中,我们称之为"App Delegate",它基本上启动了我们的应用程序,并且在我们的控制器中,也处理UITouch事件.

App委托控制器也是如此?模特班?这两个都没有?我想不知道这也让人知道在哪里放置模型参考资料令人困惑.

例:

您有Application Delegate,该委托包含对Application的View Controller的引用.如果我的应用程序将使用模型类A(它是一个Web服务器守护程序类),并使用一个存储该Web服务器查询的数据的类B.

你们在哪里存储对A和B的引用?(App Delegate?查看控制器?两者?)

这里有很多选项,但作为一个例子,我真的想知道你们如何使用mvc组合​​这个只使用一个View的应用程序.

con*_*are 7

将一切都放在AppDelegate中是很诱人的,但如果你开始这样做,那么你的AppDelegate将充满参考黑客.如果你正在做一个严格的MVC,那么你应该有三件事:

  • 一个模型
  • 视图控制器(仅适用于视图逻辑)
  • 控制器(用于在视图和模型之间进行协调)

例如,我有一个模型Foo和一个Foo控制器.我会:

  • Foo.m(型号)
  • FooViewController.m(显示Foo)
  • FooController.m(控制逻辑)

最后,为了回答你的问题,我会在foo控制器中存储我对Foo的引用.我喜欢为我的控制器使用单身人士,但那就是我.如果你使用单身,你可以做这样的事情:[[FooController sharedInstance] listOfFoos]获得你的Foo