我是Swift的新手,我正在尝试使用fetchAssetCollections创建一个只返回截屏相册中照片数量的函数
我有
func getNumScreenshots() -> Int {
let collection:PHFetchResult =
PHAssetCollection.fetchAssetCollections(with: .album, subtype:.smartAlbumScreenshots, options: nil)
return collection.count
}
但是,这总是返回3,我不知道为什么(我的iPhone上有600个截图)。
答案 0 :(得分:6)
你可以试试这个:
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
答案 1 :(得分:0)
在Swift 4中,有一种非常简单的方法来获取ScreenShots的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)