【发布时间】:2018-05-31 15:12:30
【问题描述】:
import UIKit
class DetailsViewController: UIViewController {
@IBOutlet weak var alpha3CodeLbl: UILabel!
@IBOutlet weak var regionLbl: UILabel!
@IBOutlet weak var flagImage: UIImageView!
var countrie:jsonStruct?
override func viewDidLoad() {
super.viewDidLoad()
alpha3CodeLbl.text = countrie?.alpha3Code
regionLbl.text = countrie?.region
let urlString = "http://restcountries.eu/rest/v2/all" + (countrie?.flag)!
flagImage.downloadedFrom(url: url!)
}
}
extension UIImageView {
func downloadedFrom(url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) {
contentMode = mode
URLSession.shared.dataTask(with: url) { data, response, error in
guard
let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
let data = data, error == nil,
let image = UIImage(data: data)
else { return }
DispatchQueue.main.async() {
self.image = image
}
}.resume()
}
func downloadedFrom(link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
guard let url = URL(string: link) else { return }
downloadedFrom(url: url, contentMode: mode)
}
}
我正在尝试从这个 API http://restcountries.eu/rest/v2/all 获取标志图像
没有错误,但图像没有出现。但是,如果这里有人可以解决此问题,则没有结果。 拜托,不是万事大吉,尝试用太多方法获取图像但仍然没有结果。
我也试试这个
let urlString = "http[enter image description
here][1]://restcountries.eu" + (countrie?.flag)!
【问题讨论】:
-
发送 URL 示例,因为
let data = data不是此http://restcountries.eu/rest/v2/all中的图像 -
从这个 url
let urlString = "http://restcountries.eu/rest/v2/all" + (countrie?.flag)!发送示例什么是 (countrie?.flag) -
该 API 不支持您尝试使用的 URL。标志 URL 的格式为
https://restcountries.eu/data/jor.svg。而UIImage不适用于 SVG 文件。 -
countrie:jsonStruct 这是一个包含 var fla 类型字符串的结构
-
svg 的问题