![](/img/trans.png)
[英]'MBProgressHUD needs to be accessed on the main thread.' - Swift 3
[英]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.