Мне нужно выполнить сценарий со следующими шагами:
- Чтобы сделать сетевой вызов с некоторыми параметрами поиска, предоставленными пользователем
- Затем, чтобы проанализировать его ответ JSON и создать объекты модели
- Затем для каждого созданного объекта и, если у него есть связанный URL-адрес изображения, вызвать соответствующую службу для загрузки такого изображения и показать его в
UICollectionView
после завершения загрузки.
Мне нужно обрабатывать одновременные сетевые вызовы при загрузке N изображений, которые мне нужны. Пользователь должен иметь возможность отменить текущий поток поиска и начать новый. Кроме того, я должен учитывать, что ячейка для определенного изображения еще не отображалась или была удалена из очереди. Итак, мой вопрос: что было бы лучшим подходом для этого?
- Выполните первый сетевой вызов (без параллелизма) и синтаксический анализ ответа JSON напрямую, используя
URLSession
иURLSessionDownloadTask
, и используяOperation
иOperationQueue
для последующих шагов. Используйте какinvalidateAndCancel()
дляURLSession
, так иcancelAllOperations()
дляOperationQueue
, если пользователь хочет отменить текущий поиск. - Выполните весь процесс, используя
Operation
иOperationQueue
. - Есть ли другой и более подходящий подход?