iosswiftphassetcollection

Get screenshot (album) count in swift


I am new to Swift and am trying to make a function that simply returns the number of photos in your screenshot album using fetchAssetCollections

I have

func getNumScreenshots() -> Int {

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

    return collection.count
}

However, this is always returning 3, and I'm not sure why (I have 600 screenshots on my iPhone).


Solution

  • You can try with this:

    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
            }
        })
    

    Note: Use this code is Swift 3