Хобрук: Ваш путь к мастерству в программировании

Xcode — не удалось открыть, поскольку тип URL-адреса http не поддерживается

Я загрузил изображения в корзину amazonS3. Я пытаюсь загрузить изображение профиля указанного пользователя. Xcode говорит, что файл не может быть открыт, потому что тип URL-адреса http не поддерживается. Я что-то упускаю из виду?

func retrieveProPic(proPicString: String, userID: String){

    let downloadRequest = AWSS3TransferManagerDownloadRequest()
    downloadRequest.bucket = "profilepicturetest1"
    downloadRequest.key = userID
    let proPicURL = NSURL(string: proPicString)
    if let picURL = proPicURL {
        downloadRequest.downloadingFileURL = picURL
    }

    let transferManager = AWSS3TransferManager.defaultS3TransferManager()
    transferManager.download(downloadRequest).continueWithBlock { (task) -> AnyObject? in
        if let error = task.error {
            print("Failed to download because of (\(error))")
        }
        if task.result != nil {

            if let data = NSData(contentsOfURL: downloadRequest.downloadingFileURL)

            {
                self.proPicImage = UIImage(data: data)
                dispatch_async(dispatch_get_main_queue()){
                    self.tableView.reloadData()
                }
            }

            print("made it to have result")

        } else {

            print ("Unexpected empty result")

        }

        return nil

    }

}

  • Безопасность транспортного уровня iOS 9 для http 16.04.2016

Ответы:


1

Добавьте в Info.plist следующее:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

Или, если вы хотите ввести их вручную:

  1. Добавьте App Transport Security Settings в свой список свойств в качестве словаря.
  2. Нажмите + во вновь созданном словаре и выберите Allow Arbitrary Loads.
  3. Установите ключ на YES.

Однако это следует использовать только как временное решение, поскольку рекомендуется использовать безопасные соединения с сетевыми приложениями.

16.04.2016

2

Я был глуп. Требуется для создания временного пути к файлу.

func retrieveProPic(proPicString: String, userID: String){
   let downloadedFilePath = NSTemporaryDirectory().stringByAppendingString("downloaded-myImage.jpg")
   let downloadedFileURL = NSURL(fileURLWithPath: downloadedFilePath)

   let downloadRequest = AWSS3TransferManagerDownloadRequest()
   downloadRequest.bucket = "profilepicturetest1"
   downloadRequest.key = userID
   downloadRequest.downloadingFileURL = downloadedFileURL

let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.download(downloadRequest).continueWithBlock { (task) -> AnyObject? in
    if let error = task.error {
        print("Failed to download because of (\(error))")
    }
    if task.result != nil {

        if let data = NSData(contentsOfURL: downloadedFileURL)

        {
            self.proPicImage = UIImage(data: data)
            dispatch_async(dispatch_get_main_queue()){
                self.tableView.reloadData()
            }
        }

        print("made it to have result")

    } else {

        print ("Unexpected empty result")

    }

    return nil

}
17.04.2016
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..