QuaRang1225 / swiftui-photos

0 stars 0 forks source link

앨범 터치시 이미지 리스트를 불러오는 과정이 너무 오래걸리는 문제 #7

Closed QuaRang1225 closed 2 months ago

QuaRang1225 commented 2 months ago
var imageList:[PHAsset]{
    switch photosMode{
    case .all:
        return vm.assets
    case .bookmark:
        return vm.assets.filter({$0.isFavorite})
    case .other:
        return vm.assets.filter { vm.items.contains($0.localIdentifier) }
    }
}
QuaRang1225 commented 2 months ago

해결

//기존
//id를 배열에 저장해서 필터링하는 방식
fetchAlbumAssetQueue.async { [weak self] in
    let items = assets.objects(at: IndexSet(integersIn: 0..<assets.count)).map{ $0.localIdentifier }
    self?.mainQueue.async {
        self?.items.append(contentsOf:items)
    }
}

//수정
//앨범 선택 시 리스트 업데이트 하는 방식
fetchAlbumAssetQueue.async { [weak self] in
    let items = assets.objects(at: IndexSet(integersIn: 0..<assets.count))
    self?.mainQueue.async {
        self?.items.append(contentsOf:items)
    }
}
//기존
fetchResult.enumerateObjects { (asset, _, _) in
    self?.mainQueue.async{
        self?.assets.append(asset)
    }
}

스크린샷 2024-08-09 오전 12 47 58

//수정
let items = assets.objects(at: IndexSet(integersIn: 0..<assets.count))
self?.mainQueue.async {
    self?.assets = items
}