2017-02-13 99 views
2

我是新來的斯威夫特,我試圖做一個函數,簡單地返回您的截圖相冊的照片數量使用fetchAssetCollections獲取截圖(專輯)計數迅速

func getNumScreenshots() -> Int { 

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

    return collection.count 
} 

然而,這總是返回3,我不知道爲什麼(我的iPhone上有600張截圖)。

+0

可以使用smartAlbum –

回答

4

你可以用這個嘗試:

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

注:使用此代碼是斯威夫特3

+0

謝謝你這麼多這正是我一直在尋找! – rjvalenti

+0

好祝你好運! –

+0

您可以直接使用NSPredicate過濾照片。 – user4150758