1. 程式人生 > >IOS網路、多執行緒、shareSDK-使用EDG多執行緒技術下載圖片

IOS網路、多執行緒、shareSDK-使用EDG多執行緒技術下載圖片

使用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() }
}