Невозможно загрузить изображение LCR в приложения tvOS

Я пытаюсь загрузить изображение LCR в UIImageView, используя метод "contentsOfFile", как описано в документе Apple, но я получаю ошибку с нулевым изображением. Кто-нибудь может подтвердить, как мы можем загрузить изображения LCR с сервера?

Код, который я использую:

UIImage(contentsOfFile: "LCR file url")

Ошибка, которую я получаю в консоли:

BOMStorage BOMStorageOpenWithSys (const char, Boolean, BomSys): невозможно открыть: '/LCR file url' Нет такого файла или каталога

Одна вещь, которую я заметил, это добавляет "/" перед моим фактическим URL. Я думаю, потому что он ищет файлы в локальном хранилище. Кто-нибудь знает, каково его решение?

Я даже пытался использовать это:

Загруженный файл - загрузка изображений с использованием imageWithContentsOfFile:

но бесполезно:(

2 ответа

Решение

Хорошо, я вроде нашел решение этой проблемы. Так что я публикую здесь, если кто-то еще сталкивается с той же проблемой. Ниже приведен код с объяснением:

if let url = NSURL(string: "https://.lcr-file-url") {
        if let data = NSData(contentsOfURL: url){
          let documents = NSURL(string: NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0])
          let writePath = documents!.URLByAppendingPathComponent("file.lcr")
          data.writeToFile(writePath.absoluteString, atomically: true)
          let image = UIImage(contentsOfFile: writePath.absoluteString)
        }
      }

По сути, нам нужно загрузить данные изображения и сохранить их в каком-нибудь локальном файле и использовать метод contentsOfFile, чтобы получить реальное изображение.

Если кто-то знает лучшее решение, чем это, я был бы рад услышать:)

contentsOfFile предполагается, что вы передаете путь к локальному файлу, а не URL-адрес изображения, размещенного на каком-либо удаленном сервере.

Здесь вы должны загрузить данные в объект NSData и затем передать их в UIImage через UIImage(withData: dataFromServer),

Делать это синхронно:

if let url = NSURL(string: "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") {
    if let data = NSData(contentsOfURL: url){
        let yourImage = UIImage(data: data)
    }
}

Код, для которого я нашел в этом связанном вопросе

И вот сообщение в блоге о том, как сделать это асинхронно.

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