在swift中获取截图(专辑)计数

时间:2017-02-13 01:39:25

标签: ios swift phassetcollection

我是Swift的新手,我正在尝试使用fetchAssetCollections创建一个只返回截屏相册中照片数量的函数

我有

func getNumScreenshots() -> Int {

    let collection:PHFetchResult =  
     PHAssetCollection.fetchAssetCollections(with: .album, subtype:.smartAlbumScreenshots, options: nil)

    return collection.count
}

但是,这总是返回3,我不知道为什么(我的iPhone上有600个截图)。

2 个答案:

答案 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)