Невозможно загрузить изображение 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)
}
}
Код, для которого я нашел в этом связанном вопросе