如何使用DispatchQueue.global?

时间:2017-09-24 18:13:21

标签: swift3

我正在使用此

从我的服务器下载图像
let s = """
[{"Name":"test1","Address":"2206 ne parvin rd","Latitude":"39.172196","Longitude":"-94.549035","id":"1","info":"Special Going On","time":"1"},{"Name":"test2","Address":"somewhere","Latitude":"39.171816","Longitude":"-94.548157","id":"2","info":"Special INN Deal","time":"1"}]
"""
let data = s.data(using:.utf8)!

虽然下载用户的图像可以点击按钮。但有时这个按钮不起作用(当所有图像完成按钮工作正确时)。 如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不要为此访问全局队列,而是创建带有标签的自定义DispatchQueue,qos为.background并获取图像,完成后使用DispatchQueue.main将图像返回到主队列

例如:

let queue = DispatchQueue(label: "myImageQueue", qos: .background)
queue.async {
      ...fetch image
      DispatchQueue.main.async {
           self.imageView.image = fetchedImage
      }
}