1

Is there a way to load PHAssets by pagination? Below is the code to fetch photos stored on my device (it takes too much time to check for availability of photo on my phone). Hence i need an efficient way to load assets.

func getOption() -> PHFetchOptions {
    let options = PHFetchOptions()
    let sortOrder = [NSSortDescriptor(key: "modificationDate", ascending: false)]
    options.sortDescriptors = sortOrder
    return options
}

func fetchPhotosOnDevice(completion: @escaping ([PHAsset]) -> Void) {
    let options = getOption()
    options.predicate = NSPredicate(format: "mediaType = %i", PHAssetMediaType.image.rawValue)
    let fetchResults = PHAsset.fetchAssets(with: .image, options: options)

    DispatchQueue.global().async {
        var assets: [PHAsset] = []
        fetchResults.enumerateObjects({ (asset, idx, bool) in
            if let _ = asset.fullResolutionImage {
                assets.append(asset)
            }
        })
        completion(assets)
    }
}
  • Did you give [this answer](https://stackoverflow.com/questions/54560446/how-to-paginate-when-using-phasset-to-fetch-user-photo-library) a look? Maybe some reference from this can help you. – Sagun Raj Lage Nov 12 '19 at 09:20

0 Answers0