异步操作与异步网络任务?

时间:2016-11-27 10:45:42

标签: ios nsurlsession nsoperation nsoperationqueue nsurlsessiondatatask

具有需要异步调用RESTful Web Service以获取JSON内容,然后解析该JSON响应以创建一些数据模型实体的常见场景。此过程可以取消/恢复。我不完全确定哪种方法最好:

  • 为网络调用实现Operation,为JSON解析实现另一个Operation,并在两个操作之间设置依赖关系(前者的JSON输出是后者的数据输入)。然后,将这些操作添加到OperationQueue
  • 使用URLSessionURLSessionDataTask执行网络调用,并在其回调中使用JSON解析。

或许是另一种不同且更好的方式?

编辑:在我的方案中,我不需要执行并发网络呼叫。如果我需要使用不同的参数调用服务,我应该能够在必要时停止以前的网络任务,并启动新任务。

1 个答案:

答案 0 :(得分:0)

在大多数简单的情况下,答案只是一个URLSession,但如果它看起来很复杂,那么Operation就是一个很有用的工具。这个精确的用例在Advanced NSOperations中详细讨论。