Скачать оригинальное фото с iCloud - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть collectionView, который отображает фотографии из Фотогалереи через PHAsset

init PHAsset

fileprivate var fetchResult: PHFetchResult<PHAsset>!
fileprivate let imageManager = PHCachingImageManager()
fileprivate var fetchOptions: PHFetchOptions?

    func viewDidLoad() {
    fetchOptions = PHFetchOptions()
    fetchOptions!.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    fetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)
    imageManager.allowsCachingHighQualityImages = true
    view?.refreshView()
}

и настраиваю ячейку:

 func configure(cell: PhotoCollectionViewCell, forRow row: Int) {
    let asset = fetchResult.object(at: row)
    let requestOptions = PHImageRequestOptions()
    requestOptions.isNetworkAccessAllowed = true
    requestOptions.deliveryMode = .highQualityFormat // Quality of images

    imageManager.requestImage(for: asset, targetSize: CGSize(width: 400, height: 400), contentMode: .default, options: requestOptions, resultHandler: { image, info in

        cell.photoImage.image = image
    })
}

Я пытаюсь получить фотографию, когда выбираю строку коллекции

func didSelect(row: Int) {
        fetchResult.object(at: row)
                .requestContentEditingInput(with: PHContentEditingInputRequestOptions()) { [weak self] (editingInput, info) in
                    let input = editingInput
//some code for image cropping
                }
    }

и иногда получаю editingInput = nil. Я понял, что это происходит, когда оригинальная фотография хранится в iCloud.

Как я могу получить локальную копию оригинальной фотографии из iCloud или ссылку для загрузки этой фотографии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...