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)
}
}