SwiftUI 사진 선택기에서 메모리가 튀는 문제
읽는 데 1분
사진 수백 장을 한꺼번에 고르면 메모리가 순간적으로 1GB를 넘었다. 원인은 원본 데이터를 전부 Data로 들고 있던 것이다.
고친 방법#
for item in selection {
guard let url = try await item.loadTransferable(type: URL.self) else { continue }
try await uploader.enqueue(fileURL: url) // 파일 경로만 넘긴다
}- 원본을 메모리에 올리지 않고 파일 경로로 넘긴다
- 썸네일은
CGImageSourceCreateThumbnailAtIndex로 만든다 - 업로드는 한 번에 3개씩