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

问题描述:

有需要异步调用RESTful Web服务得到JSON的内容,然后解析该JSON响应创建一些数据模型实体的常见的场景。这个过程可以被取消/恢复。我不能完全肯定它的最好的办法是:从前者为异步操作vs异步网络任务?

  • 实现对网络电话的Operation和另一Operation的JSON解析和设置两种操作之间的相关性输出(JSON后者的数据输入)。然后,将这些操作添加到OperationQueue
  • 使用URLSessionURLSessionDataTask进行网络呼叫,并在其回调JSON解析。

或许彼此不同,并且更好的办法?

编辑:在我的情况下,我不需要执行并发网络调用。如果我需要调用不同PARAMS服务,我应该能够在必要时停止以前的网络任务,并启动新的。

在最简单的情况下,答案只是一个URLSession,但如果是复杂的,因为你似乎是,那么操作是一个非常有用的工具。这个精确的用例在Advanced NSOperations中详细讨论。

+0

谢谢。我只需要执行这2个任务,网络调用+ JSON响应解析,并且不需要并发。如果我需要一个新的网络电话,我只需要停止前一个,如果正在进行并开始新的。这将使URLSession选项更适合? – AppsDev

+0

是的;你可以使用'invalidateAndCancel()'来取消现有的会话。你只需要跟踪它。 –