使用EDG中央调度多线程技术实现图片的异步下载
//
// ViewController.swift
// Dome2test
//
// Created by 郭文亮 on 2018/11/22.
// Copyright © 2018年 finalliang. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var imageView = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
imageView.frame = CGRect(x: 20, y: 80, width: 280, height: 280)
self.view.addSubview(imageView)
let picPath = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2413290520,2311083305&fm=27&gp=0.jpg"
let picUrl = URL(string: picPath)
//使用分离新线程选择器方法 创建一个线程 用来执行下载图片的方法
let globalQueue = DispatchQueue.global()
//创建一个异步方法 用来下载网络图片
globalQueue.async {
//通过Data下载网络图片 并将下载后的二进制数据存储在常量中
let picData = try? Data(contentsOf: picUrl!)
//将数据对象转换成 图片对象
let picture = UIImage(data:picData!)
//返回主线程 更新UI
DispatchQueue.main.async {
self.imageView.image = picture
}
}
}
override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }
}