我有一个启用分页的 UIScrollView,我想显示一些带有图像的“页面”。
我在主线程中加载第一页的图像并显示它。然后我开始在后台线程中加载其他页面图像
dispatch_async(loadingImagesQueue, ^{
for (int i = 0; i < numberOfImages; i++) {
NSString *imagePath = [arrayWithImagePaths objectAtIndex:i];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Posting notification\n\n");
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_NAME_IMAGE_PREPARED object:image];
});
}
});
在发布通知某些方法调用后,女巫会创建一个带有加载图像的新页面。
我将日志消息放入加载图像并创建新页面方法,我希望它看起来像一条关于加载图像的消息,然后是一条关于创建新页面的消息。
但是,出于某种原因,它首先加载所有图像,然后才开始创建新页面。我可以通过我的日志消息看到它。最奇怪的是,在加载最后一张图片和开始创建新页面之间有很大的延迟(大约 0.5 秒)。
谁能解释一下,这种奇怪行为的原因是什么?