我想我瞭解了以下工作但希望確認。IOS/Objective-C的:返回到主線程
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL: dataUrl];
[self fetchData:data];//go to web, get data and store in core data
}
dispatch_async(dispatch_get_main_queue(), ^{
//display new data on main thread.
}
我的問題是,我可以想當然的主線程上的顯示將不會發生,直到在後臺發生的一切結束後 - 無論多久?
我希望得到確認的原因是偶爾我會觀察顯示器的一些問題。當後臺線程沒有完成保存時,要確保顯示不會嘗試訪問核心數據。
這是正確的。但你是什麼意思與「顯示器是不是......「?如何才能‘顯示’做任何事情。 –
的調用'[NSData的dataWithContentsOfURL]'可能會做從網絡的網絡請求,具體情況取決於。URL指向如果它是一個文件URL指向本地文件系統上的文件,它會簡單地從本地文件讀取數據。如果它像'HTTP遠程URL://富/ bar.jpg'那麼它將同步地從遠程服務器獲取數據 –