0

有人可以向我解释为什么我在调试控制台中的第一个 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     
        }];
    });

}
4

0 回答 0