Как скачать изображение из облака? - PHImageManager

Исходя из документов Apple, мне нужно использовать один из методов, перечисленных в запросе изображений.

Вот мой код:

 PHImageManager.default().requestImageData(for: selectedAssets[0].phAsset!, options: PHImageRequestOptions(), resultHandler:
            {
                (imagedata, dataUTI, orientation, info) in
                if info!.keys.contains(PHImageResultIsInCloudKey){

                }

        })

Опять же, основываясь на документах Apple, они говорят, что если PHImageResultIsInCloudKey возвращает true тогда:

изображение не было предоставлено, потому что данные актива должны быть загружены из iCloud. Чтобы загрузить данные, отправьте другой запрос и укажите значение true для параметра isNetworkAccessAllowed.

поэтому, если я правильно понимаю, мне нужно запросить еще раз для данных изображения (PHImageManager.default().requestImageData()) но на этот раз мне нужно передать isNetworkAllowedAccess в настройках и указать его как true.

Я не знаю как пройти isNetworkAllowedAccess в настройках я попробовал следующий код:

PHImageManager.default().requestImageData(for: selectedAssets[0].phAsset!, options: PHImageRequestOptions(), resultHandler:
            {
                (imagedata, dataUTI, orientation, info) in
                if info!.keys.contains(NSString(string: "PHImageFileURLKey"))
                {
                    if info!.keys.contains(PHImageResultIsInCloudKey) == true {
                        let options = PHAssetResourceRequestOptions()
                        options.isNetworkAccessAllowed = true
                        PHImageManager.default().requestImageData(for: self.selectedAssets[0].phAsset!, options: PHImageRequestOptions(), resultHandler: {
                            (imagedata, dataUTI, orientation, info) in
                            options.progressHandler = { (progress) in
                                print("works")
                            }

                        })

                    }
                    let path = info![NSString(string: "PHImageFileURLKey")] as! NSURL
                    print(path)
                }

Он печатает локальный путь к изображению, но если выбранное изображение сохраняется в iCloud, я получаю следующую ошибку, выводимую на консоль:

Не удалось загрузить данные изображения для актива C2717B20-5180-4CE8-AFEB-D661C259D227/L0/001 mediaType=1/0, sourceType=1, (2448x3264), creationDate=2017-07-02 06:46:00 +0000, location=1, скрытый =0, любимый = 0 в формате 9999

Что я здесь не так делаю?

0 ответов

Другие вопросы по тегам