模型中的ios网络代码?

mar*_*ram 6 iphone model-view-controller networking ipad ios

我最近在iTunes U中观看了WWDC 2010的"iPhone OS网络应用程序"视频,该发言人表示,编写网络代码的最佳位置在模型中.这种方式让我感到困惑,因为我总是将这些代码放在控制器类中.有人可以解释为什么这是网络代码的最佳位置?如果可能的话,请提供示例,代码或伪代码,或者可以使用.

Ste*_*ton 9

我想知道我们是否都使用相同的术语?以下是我将使用的内容,我认为(虽然我没有太多背景说这个)WWDC主持人的意思是:

  • 模型.数据
  • 视图.在UI中它看起来像什么
  • 控制器.该图层介于模型和视图之间

使用这些定义,控制器是保留任何网络代码的可怕地方.它与UI和数据之间的交互无关.

当然,没有理由为您的模型设置多个类:一个用于数据表示,另一个用于在Web服务和数据模型之间进行调解.从这个意义上讲,它将是一个控制器,但仍然会在应用程序的模型层中.


Jus*_*ers 5

我认为该模型是实施任何类型的网络代码的极其糟糕的地方。由于联网操作应以异步方式进行,因此控制器对象最适合处理引发请求和处理响应的复杂性。对于模型对象来说,知道如何从下载的数据(例如,XML或JSON)中构造自身确实很有意义,但是我在模型对象中看到的大多数服务代码都是编写不良的同步网络。