Saya bisa mendapatkan semua fotonya, tetapi saya tidak tahu bagaimana menemukan album tempat foto-foto ini berada. Pilihan lainnya adalah menelusuri semua album dan mengambil fotonya. Saya pikir ini bukan pilihan yang baik. Tujuannya adalah untuk mendapatkan nama album untuk setiap foto.
private func getPhotosAll() -> [String:Photo] {
var photos = [String:Photo]()
let assets = PHAsset.fetchAssets(with: .image, options: nil)
assets.enumerateObjects({ (asset, index, stop) in
let id = asset.localIdentifier
guard (id.isEmpty == false) else {
return
}
guard let name = asset.originalFilename else {
return
}
let photo = Photo()
photo.name = name
// TODO: Read albums?
photo.albums = [String]()
photos[id] = photo
})
return photos
}
Memperbarui. Saya hanya mendapatkan album pengguna. Dan bagaimana cara mendapatkan sisanya? (Rol Kamera, Orang, Tempat, Baru Dihapus)
var albums = Set<String>()
let typesAlbum: [PHAssetCollectionType] = [.album, .smartAlbum, .moment]
for type in typesAlbum {
let collectionsBox = PHAssetCollection.fetchAssetCollectionsContaining(asset,
with: type, options: nil)
collectionsBox.enumerateObjects { (collection, _, _) in
guard let albumName = collection.localizedTitle else {
return
}
albums.insert(albumName)
}
}