有人可以向我解释为什么我在调试控制台中的第一个 NSLog(text count) 之前得到第二个 NSLog(images count) 吗?
我拥有两个并行dispatch_async
(每个都是嵌套的)的目的是使用核心数据将文本和图像分别下载到表格视图中。请注意,图像数据比文本大得多。
我首先尝试在一个嵌套中下载文本和图像dispatch_async
(当然,跳回主队列进行映射和提交文本和图像)。但是,我注意到在屏幕上显示单元格时出现了明显的延迟。我认为必须有一些更好的方法来做到这一点。任何建议都值得赞赏。
-(void)doSometing
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
// download text data
[document.managedObjectContext performBlock:^{
NSLog(@"Text count is %d \n\n",[text count]);
// insert text data to context
// commit text data
}];
});
// see if I can shorten wait time by download image separately
//
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
// download image
[document.managedObjectContext performBlock:^{
NSLog(@"Images count is %d \n\n",[images count]);
// insert images into context
// commit images
}];
});
}