簡體   English   中英

iOS表格視圖單元格圖片下載

[英]IOS table view cell image download

嗨,我在udemy上跟隨了ios 10和swift 3類,教師的代碼使我的圖像非常緩慢地下載到表格視圖單元格中(使用15秒載入5張圖像),代碼如下:

let url = URL(string : partyRock.ImageUrl)!

DispatchQueue.global().async {
    do{
        let data = try Data(contentsOf: url)

        DispatchQueue.global().sync{
            self.videoPreviewImage.image = UIImage(data: data)
        }
    } catch {
        //handle catch error
    }

並使用此代碼可以非常快速地下載(問題是我不了解DispatchQueue.main.sync和DispatchQueue.global()。sync之間的區別

let url = URL(string : partyRock.ImageUrl)!

DispatchQueue.global().async {
    do{
        let data = try Data(contentsOf: url)

        DispatchQueue.main.sync{
            self.videoPreviewImage.image = UIImage(data: data)
        }
    } catch {
        //handle catch error
    }
DispatchQueue.global().async

表示它在后台異步運行。

DispatchQueue.main.sync

表示它在主線程中同步運行。

更新UI必須始終在主線程上。 而其他(將數據下載/上傳到服務器等)可以發送到后台。

DispatchQueue.main.sync是主隊列:在主線程上運行,並且是串行隊列。 在完成並發隊列中的任務中的工作之后,這是更新UI的常見選擇。

DispatchQueue.global()。async是全局隊列:整個系統共享的並發隊列。 有四個這樣的隊列,它們具有不同的優先級:高,默認,低和后台。 后台優先級隊列受到I / O限制。 這是在后台執行非UI工作的常見選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM