невозможно получить изображение с URL для обновления в UIImage в Swift - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь обновить ячейку таблицы с изображением из веб-API.В соответствии с приведенной ниже ссылкой, я попробовал это, но он дает ноль в изображении, даже если изображение существует.

Обновление изображения ячейки таблицы асинхронно .

Ниже приведен мой код, пожалуйстадайте мне знать, где я его пропускаю.

DispatchQueue.global(qos: .background).async { [weak self] () -> Void in
            if let url = NSURL(string: "https://myantion.eu/data/sol.svg"){
                    if let data = NSData(contentsOf: url as URL) {
                        let imageAux = UIImage(data: data as Data)

                        DispatchQueue.main.async {
                                cell.imgFlag.image = imageAux
                        }
                    }
                }
        }

imageAux дает мне значение nil, даже если изображение существует

Согласно приведенным ниже советам, даже попытался использовать UIWebView до сих пор нет результата и нижеэто код:

> let fileURL:URL = URL(fileURLWithPath:
> "https://myantion.eu/data/sol.svg")
>             let req = URLRequest(url: fileURL)
>             DispatchQueue.main.async {
>                                             cell.webVw.loadRequest(req)
>                                        }
>             
>            }

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Я пытался использовать WKWebView, и для меня работает следующий код:

if let svgString =
  try ? String(contentsOf: URL(string: "https://myantion.eu/data/sol.svg") !) {
    self.wkWebView.loadHTMLString(svgString, baseURL: URL(string: "https://myantion.eu/data/sol.svg") !)
  }
0 голосов
/ 04 февраля 2019

Я попытался установить SVGKit, как указано в ссылке ниже, и она работает для меня. Как отобразить изображение .svg, используя swift

DispatchQueue.global(qos: .background).async { [weak self] () -> Void in
            if let url = NSURL(string: "https://restcountries.eu/data/est.svg"){
                    if let data = NSData(contentsOf: url as URL) {
                        let imageAux = UIImage(data: data as Data)

                        DispatchQueue.main.async {
                    let anSVGImage: SVGKImage = SVGKImage(data: data as Data)
                                cell.imgFlag.image = nSVGImage.uiImage
                        }
                    }
                }
        }

в вашем существующем коде, просто добавьте одну строку кода: пусть anSVGImage: SVGKImage = SVGKImage (data: data as Data) и все заработалона моем конце.

...