Получить снимок экрана (альбома) в Swift
Я новичок в Swift и пытаюсь создать функцию, которая просто возвращает количество фотографий в вашем альбоме со скриншотами, используя fetchAssetCollections
я имею
func getNumScreenshots() -> Int {
let collection:PHFetchResult =
PHAssetCollection.fetchAssetCollections(with: .album, subtype:.smartAlbumScreenshots, options: nil)
return collection.count
}
Тем не менее, это всегда возвращает 3, и я не уверен, почему (у меня есть 600 скриншотов на моем iPhone).
1 ответ
Решение
Вы можете попробовать это:
let albumsPhoto:PHFetchResult<PHAssetCollection> = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .albumRegular, options: nil)
albumsPhoto.enumerateObjects({(collection, index, object) in
if collection.localizedTitle == "Screenshots"{
let photoInAlbum = PHAsset.fetchAssets(in: collection, options: nil)
print(photoInAlbum.count) //Screenshots albums count
}
})
Примечание: используйте этот код Swift 3
В Swift 4 есть очень простой способ получить PHAssets
просто скриншоты без головной боли и раздражает if else
:
Свифт 4:
let sc_Fetch = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: **.smartAlbumScreenshots**, options: nil).firstObject!
let sc_Assets = PHAsset.fetchAssets(in: sc_Fetch , options: nil)
print("All ScreenShots Count : " , sc_Assets.count)