我想我了解了以下工作但希望确认。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'那么它将同步地从远程服务器获取数据 –