PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제 - boostcampwm-2021/iOS04-OwnMyWay GitHub Wiki

문제 상황

  • PHPicker를 이용해서 여러 개의 이미지를 한번에 불러올 경우 해당 이미지를 호출하는 함수는 동기적으로 실행되지만 완료는 비동기로 되어 사용자가 선택한 순서대로 화면에 그려지지 않는 문제가 발생했다.

문제 해결

  • ViewModel에서 URL을 입력받으면 빈 URL을 순서대로 배열에 삽입하고 index를 저장하고 있는다.
  • 이미지 복사가 완료되면 저장해 놓았던 index에 URL을 교체해주는 방식으로 순서를 맞춰주었다.
  • 위와 같은 방식으로 해결 시 같은 타입의 이미지의 경우에는 순서대로 들어가지만 PHPicker는 Heic과 같은 다양한 타입들을 고려해주어야 했다. ViewModel은 Photos Library에 의존해서는 안되기 때문에 PHPicker가 선택한 results가 들어왔을 때 results의 크기만큼 빈 URL을 생성해주는 함수를 만들고 해당 함수 호출 후 URL을 하나씩 호출하는 방식으로 해결했다.