0

Имея общий сценарий, требующий асинхронного вызова веб-службы RESTful для получения содержимого JSON, а затем анализ этого ответа JSON для создания некоторых объектов модели данных. Этот процесс может быть отменен/возобновлен. Я не совсем уверен, из которых лучший подход был бы:Async Operation vs Async Network task?

  • Реализация Operation для сетевого вызова и другой Operation для JSON синтаксического анализа и установления зависимости между двумя операциями (выход JSON из бывшего будучи ввод данных последних). Затем добавив эти операции к OperationQueue.
  • Использование URLSession и URLSessionDataTask для выполнения сетевого вызова и разбора JSON в его обратном вызове.

Или, может быть, другой другой и лучший способ?

EDIT: В моем сценарии мне не нужно выполнять одновременные сетевые вызовы. Если мне нужно вызвать услугу с разными параметрами, я должен быть в состоянии остановить предыдущую сетевую задачу, если это необходимо, и запустить новую.

ответ

0

В большинстве простых случаев ответ - это просто URLSession, но если это сложно, как кажется, кажется, то Operation - полезный инструмент. Этот точный вариант использования подробно обсуждается в Advanced NSOperations.

+0

спасибо. Мне нужно выполнить только 2 задания, разбор сетевого ответа + JSON и отсутствие параллелизма. Если мне нужен новый сетевой вызов, мне просто нужно остановить предыдущий, если он заработает, и запустить новый. Это сделает вариант URLSession более подходящим? – AppsDev

+0

Да; вы можете использовать 'invalidateAndCancel()' для отмены существующего сеанса. Вам просто нужно следить за этим. –