有人可以向我解释为什么在调试控制台中第一次NSLog(文本计数)之前我得到第二个NSLog(图像计数)?
我有两个并行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
}];
});
}