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() 호출을 실행 해 볼 수 있다고 생각합니다. – Skywalker
prepareForSegue()로 이동하도록 코드를 업데이트했지만 viewDidLoad()가 완료 될 때까지 메인 스레드에서만 실행되는 것 같습니다 . –
'SVProgressHUD.show()'는 이미 주 큐에 자신을 추가합니다. 명시 적으로 다시 할 필요가 없습니다. –