Имея общий сценарий, требующий асинхронного вызова веб-службы RESTful для получения содержимого JSON, а затем анализ этого ответа JSON для создания некоторых объектов модели данных. Этот процесс может быть отменен/возобновлен. Я не совсем уверен, из которых лучший подход был бы:Async Operation vs Async Network task?
- Реализация
Operation
для сетевого вызова и другойOperation
для JSON синтаксического анализа и установления зависимости между двумя операциями (выход JSON из бывшего будучи ввод данных последних). Затем добавив эти операции кOperationQueue
. - Использование
URLSession
иURLSessionDataTask
для выполнения сетевого вызова и разбора JSON в его обратном вызове.
Или, может быть, другой другой и лучший способ?
EDIT: В моем сценарии мне не нужно выполнять одновременные сетевые вызовы. Если мне нужно вызвать услугу с разными параметрами, я должен быть в состоянии остановить предыдущую сетевую задачу, если это необходимо, и запустить новую.
спасибо. Мне нужно выполнить только 2 задания, разбор сетевого ответа + JSON и отсутствие параллелизма. Если мне нужен новый сетевой вызов, мне просто нужно остановить предыдущий, если он заработает, и запустить новый. Это сделает вариант URLSession более подходящим? – AppsDev
Да; вы можете использовать 'invalidateAndCancel()' для отмены существующего сеанса. Вам просто нужно следить за этим. –