나는 다음 단계 시나리오를 수행해야합니다전체 시나리오에서 작업 큐를 사용해야합니까?
- 는
- 그런 다음 사용자가 제공 한 일부 검색 매개 변수를 사용하여 네트워크 전화를 걸려면
- 그런 모델 엔티티의 JSON 응답을 구문 분석하고 만들 생성 된 각 엔티티 및 관련 이미지 URL이있는 경우 해당 이미지를 다운로드하기위한 해당 서비스를 호출하고 다운로드가 완료되면
UICollectionView
에 표시합니다.
내가 필요로하는 N 개의 이미지를 다운로드 할 때 동시 네트워크 호출을 처리해야합니다. 사용자는 현재 검색 흐름을 취소하고 새 검색 흐름을 시작할 수 있어야합니다. 또한 특정 이미지의 셀이 아직 표시되지 않았거나 대기열에서 빠져 나왔음을 고려해야합니다. 그래서, 제 질문은 이것입니다 : 이것은 가장 좋은 접근 방법이 될까요?
- 는 제 네트워크 호출 (동시성) 및 JSON 응답 직접 분석
URLSession
및URLSessionDownloadTask
를 사용하고, 후속 단계는Operation
및OperationQueue
를 사용하여 수행한다. 사용자가 현재 검색을 취소하려는 경우OperationQueue
의 경우URLSession
에invalidateAndCancel()
과cancelAllOperations()
을 모두 사용하십시오. Operation
및OperationQueue
을 사용하여 전체 프로세스를 수행하십시오.- 기타 다른 적절한 접근 방법은 무엇입니까?
을 이후의 네트워크 호출을 위해 그들이 종속성이 없기 때문에 또는 그들 중 우선 순위 NSOperationQueue를 사용하여 (이 경우에는 필자가 생각할 수있는 주요 이점은 의존성과 우선 순위이다) 나는 가치가 없다고 생각한다. NSURLSession의 여러 데이터 작업을 시작할 수 있으며 나중에 URLSession에서 invalidateAndCancel을 호출하는 것이 좋습니다. 그러나 inorder 이미지를 다운로드하고 그것을 CollectionView에서 보여주는 것은 SDWebImage를 사용하는 것을 선호합니다. 그것은 광범위하게 캐싱을 수행하고 이미지를 다운로드하고 UI를 효율적으로 업데이트하여 collectionView/tableView의 이미지를 효율적으로 표시합니다. D –