執行主執行緒
在非同步執行任務時,通常需要確保在主執行緒上執行一段程式碼。例如,你可能希望非同步命中 REST API,但將結果放在螢幕上的 UILabel 中。在更新 UILabel 之前,你必須確保你的程式碼在主執行緒上執行:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Perform expensive tasks
//...
//Now before updating the UI, ensure we are back on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
label.text = //....
});
}
每當你在螢幕上更新檢視時,請始終確保你在主執行緒上執行此操作,否則可能會發生未定義的行為。