0

我想了解是否有更好的设计模式可用于我的 iOS 应用程序,它使用 REST 模型与 Django 后端进行异步通信。

服务器目前可以对请求返回三种类型的响应:

  • 一个 JSON 对象
  • 服务器状态码整数
  • 一条长的 Django 错误消息

当在需要来自服务器的数据的 iOS 应用程序中执行操作时,我的设计模式如下所示:

  • 通知中心添加观察者,指定可以处理服务器响应的方法
  • 该方法放在一起并发送一个 NSURLConnection
  • NSURLConnection 委托方法接收响应,进行一些解释以检查它是哪种服务器响应,然后将适当的通知发布到通知中心
  • 这会触发响应方法运行,处理响应

我对这种模式的问题是编写了大量的方法来发送和接收单独的请求和响应类型。例如,如果我请求一个项目列表,我需要在通知中心添加几个观察者,一个处理用户列表,一个处理空白用户列表,一个处理错误。然后我需要为这三个中的每一个编写自定义方法,以根据服务器发送的响应类型执行适当的操作并删除观察者。

此外,NSURLConnection 委托最终变得相当复杂,因为我试图解释收到的响应类型(收到的列表中的项目类型是什么?)没有太多请求的上下文,以确保我没有当服务器消息返回时,不要调用错误的响应方法。

我对 iOS 编程和 REST 编程都很陌生,所以我可能遗漏了一些明显的东西。任何建议或资源链接表示赞赏。

4

2 回答 2

2

我最初会考虑使用 RestKit 将您的代码从网络通信中抽象出来,这样您就可以更多地担心数据模型和高级请求。其次,我不会为此使用通知,因为它可能会变得混乱并且很难管理多个同时请求 - 委托或阻止回调对此会更好。

于 2013-09-14T16:22:57.160 回答
2

您的 REST 实现主要是服务器端,并且经验上您将传递和接收二进制文件。有一些因素需要考虑,包括您是否使用 HTTP。

NSJSONSerialization在类中使用 JSON ,NSURLConnection并使您的程序更加精简和平均。

于 2013-09-14T21:52:41.573 回答