SVProgressHUDを使用して、アプリケーションがビジー状態であることを示しています。SVProgressHUDは、UITableViewが表示されるまで表示されません。
私のコードは以下のようになります。
SVProgressHUD.show()
DispatchQueue.global(qos: .background).async {
parser.parse()
print("start reloading")
self.protocolTableView.reloadData()
print("end reloading")
SVProgressHUD.dismiss()
}
私はこの警告を得る:
UITableView.reloadData() must be used from main thread only
をと解析が行われた後のtableViewが表示されるまでにはかなり時間がかかります。
メインスレッドからパーズを読み込んだ後、tableViewを更新するにはどうすればよいですか?
おかげで、 バート
はこれが動作することを確認されていない場合がありますが、prepareForSegue方法でshow()メソッドを入れてみてくださいすることができますか?または、私はあなたがメインスレッドでshow()呼び出しを実行しようとすると思う。 – Skywalker
prepareForSegue()に移動するコードを更新しましたが、viewDidLoad()が終了するまでメインスレッドでのみ実行されるようです。 –
'SVProgressHUD.show()'はすでに自身をメインキューに追加しています。再度明示的に行う必要はありません。 –