Je récupère tout le smartAlbum présent dans la bibliothèque utilisateur. Le code J'utilise est le suivant:Swift Récupération de smartAlbum avec au moins un média
var smartAlbums: PHFetchResult<PHAssetCollection>!
override func viewDidLoad() {
super.viewDidLoad()
let options = PHFetchOptions()
options.predicate = NSPredicate(format: "estimatedAssetCount > 0")
options.sortDescriptors = [NSSortDescriptor(key: "localizedTitle", ascending: true)]
smartAlbums = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .albumRegular, options: options)
L'i affiche le résultat dans une tableview et je l'utiliser pour compter le nombre de lignes dans la section:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch Section(rawValue: section)! {
case .allPhotos: return 1
case .smartAlbums: return smartAlbums.count
case .userCollections: return userCollections.count
}
}
Tout fonctionne très bien .. mais le résultat de recherche pour smartAlbums récupère aussi un album avec zéro média. Fondamentalement, il récupère tous les albums. Il semble que le prédicat n'a pas été pris en considération. le même prédicat est appliqué à userCollections et fonctionne correctement.
userCollections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .albumRegular, options: options) // this works fine
Existe-t-il un moyen de récupérer uniquement les smartAlbums avec au moins un média?
Merci!