PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제 - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki
문제 상황
PHPicker를 이용해서 여러 개의 이미지를 한번에 불러올 경우 해당 이미지를 호출하는 함수는 동기적으로 실행되지만 완료는 비동기로 되어 사용자가 선택한 순서대로 화면에 그려지지 않는 문제가 발생했다.
문제 해결
ViewModel에서 URL을 입력받으면 빈 URL을 순서대로 배열에 삽입하고 index를 저장하고 있는다.
이미지 복사가 완료되면 저장해 놓았던 index에 URL을 교체해주는 방식으로 순서를 맞춰주었다.
위와 같은 방식으로 해결 시 같은 타입의 이미지의 경우에는 순서대로 들어가지만 PHPicker는 Heic과 같은 다양한 타입들을 고려해주어야 했다. ViewModel은 Photos Library에 의존해서는 안되기 때문에 PHPicker가 선택한 results가 들어왔을 때 results의 크기만큼 빈 URL을 생성해주는 함수를 만들고 해당 함수 호출 후 URL을 하나씩 호출하는 방식으로 해결했다.