Как получить «Фотопленку», «Видео», «Избранное», «Селфи» и «Скриншоты» в fetch PHAssetCollection statement — swift 4

#ios #swift #photo #phasset #phassetcollection

#iOS #swift #фото #phasset #phassetcollection

Вопрос:

Я работаю с Photo Framework и пытаюсь получить все фотографии и видео во всех альбомах на iPhone. Но проблема в том, что я не могу получить все альбомы, включая «Фотопленку», «Видео», «Избранное», «Селфи», «Скриншоты» и другие альбомы с fetchAssetCollections заявлением. Я извлек только другие альбомы.

Я перепробовал все album и subtype , но это мне не помогло.

Вот мой код:

 var collections: PHFetchResult<PHAssetCollection>!

@objc private func loadPhoto(notification: Notification) {
        if let object = notification.object {
            photoArray.removeAll()

            collections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: nil)

            collections.enumerateObjects { (collection, _, _) in
                let photoInAlbum = PHAsset.fetchAssets(in: collection, options: nil)

                photoInAlbum.enumerateObjects({ (asset, _, _) in
                    let imageSize = CGSize(width: 200, height: 200)
                    let photoOption = PHImageRequestOptions()
                    photoOption.deliveryMode = .fastFormat
                    photoOption.isSynchronous = true

                    PHCachingImageManager.default().requestImage(for: asset, targetSize: imageSize, contentMode: .aspectFill, options: photoOption, resultHandler: { (image, info) in
                        self.photoArray.append(image!)
                    })
                })
            }
            listPhotoView.reloadData()
        }
    }
 

Я ожидаю, что на выходе будут все альбомы, включая «Фотопленку», «Видео», «Избранное», «Селфи», «Скриншоты» и другие альбомы.

Комментарии:

1. все еще жду…

Ответ №1:

Изменить

 collections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: nil)
 

Для

 collections = PHAssetCollection.fetchAssetCollections(with: . smartAlbum, subtype: .any, options: nil)
 

Все альбомы, которые вы хотите перечислить, — это «Смарт-альбомы». .альбом относится к созданным пользователем альбомам.