Как скачать изображение из облака? - 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
Что я здесь не так делаю?