簡體   English   中英

MBProgressHUD需要在主線程上訪問

[英]MBProgressHUD needs to be accessed on the main thread

我在使用MBProgessHUD時收到此錯誤。 我試圖顯示一個“加載指示器”,然后我的應用正在從Api加載數據,然后停止,然后數據顯示在屏幕上。

func getJson(){ 
        let spinningWheel = MBProgressHUD.showAdded(to: self.view, animated: true)
        spinningWheel.label.text = "Loading"
        spinningWheel.detailsLabel.text = "Please wait a moment.."
.
. 
.
.
.
.
. 
DispatchQueue.main.async {
                    self.movieName.isHidden = false
                    self.movieName.text = self.movieNameLabel
                    self.movieDescription.text = self.movieDescriptionLabel
                    self.movieImage.downloadedFrom(url: url2!)
                    spinningWheel.hide(animated: true)
                }

在iOS中,所有UIKit方法調用都必須在主線程上進行。 將所有UIkit用法包含在DispatchQueue.main.(a)sync調用中,如下所示:

func getJson() {
  DispatchQueue.main.async {
    let spinningWheel = MBProgressHUD.showAdded(to: self.view, animated: true)
    spinningWheel.label.text = "Loading"
    spinningWheel.detailsLabel.text = "Please wait a moment.."
  }
  // actually get JSON
}

一個可疑的是您從后台線程向該vc顯示/推送/搜索

let spinningWheel = MBProgressHUD.showAdded(to: self.view, animated: true)

將在其中運行,因此請確保在主線程中進行導航,以便vc生命周期處於正確的位置

暫無
暫無

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

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