使用GCD多執行緒技術下載圖片(非同步下載)
阿新 • • 發佈:2019-02-05
var imageView = UIImageView() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. imageView.frame = CGRect(x: 20, y: 80, width: 330, height: 450) self.view.addSubview(imageView) let picPath = "https://imgsrc.baidu.com/forum/pic/item/741ccaedab64034f38facc9ca4c379310b551d5f.jpg" let picUrl = URL(string: picPath) //使用分離執行緒選擇器方法,建立一個執行緒,用來執行下載圖片的方法 let globalQueue = DispatchQueue.global() //建立一個非同步方法,用來下載網路圖片 globalQueue.async { //通過資料物件下載網路圖片,並將下載後的二進位制資料儲存在常量中 let picData = try? Data(contentsOf: picUrl!) //將資料物件轉換成圖片物件 let picture = UIImage(data: picData!) //返回主執行緒,並在主執行緒中更新圖片內容 DispatchQueue.main.sync { self.imageView.image = picture } } }