Swift - Code = 257 «Файл« ... »не может быть открыт, потому что у вас нет разрешения на его просмотр». - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь прочитать фотографию из галереи, но она выдает эту ошибку.Когда я пытаюсь использовать Simulator , я могу получить эту фотографию правильно, но с личным телефоном нет.Я думаю, что это около Песочница , но я не нашел никакого решения. Речь идет не о каких-либо разрешениях.

Примечание. Это изображение получено от службы, и я храню его в фотогалерее и сохраняю этот путь в основных данных.Затем я пытаюсь прочитать с этого URL.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018
Privacy - Photo Library Additions Usage Description

также добавьте указанное выше разрешение в ваш Info.plist

0 голосов
/ 23 мая 2018

Вам необходимо получить разрешение на использование фотогалереи.Перейдите к Info.plist и добавьте Конфиденциальность - Описание использования библиотеки фотографий

И вам необходимо проверить это разрешение:

func checkPermission() {
    let authStatus = AVCaptureDevice.authorizationStatus(for: AVMediaType.video)
    switch authStatus {
    case .authorized:
        self.displayUploadImageDialog(btnSelected: YOUR_BUTTON_HERE)
    case .denied:
        alertPromptToAllowCameraAccessViaSetting()
    default:
        break
    }
}

func checkLibrary() {
        let photos = PHPhotoLibrary.authorizationStatus()
        if photos == .authorized {
            switch photos {
            case .authorized:
                self.displayUploadImageDialog(btnSelected: YOUR_BUTTON_HERE)
            case .denied:
                alertPromptToAllowCameraAccessViaSetting()
            default:
                break
            }
        }
    }

func alertPromptToAllowCameraAccessViaSetting() {
        let alert = UIAlertController(title: "Error", message: "You are not allow accsess to camera and library", preferredStyle: UIAlertControllerStyle.alert)
        alert.addAction(UIAlertAction(title: "Cancel", style: .default))
        alert.addAction(UIAlertAction(title: "Settings", style: .cancel) { (alert) -> Void in
            UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
        })

        present(alert, animated: true)
    }
...