我正在尝试编写一个iPad应用程序,从URL加载图像。我使用以下图像加载代码:
url = [NSURL URLWithString:theURLString];
NSData *data = [NSData dataWithContentsOfURL:url];
img = [[UIImage alloc] initWithData:data];
[imageView setImage:img];
[img release];
NSLog(@"Image reloaded");
所有的代码都被作为操作添加到NSOperationQueue中,以便异步加载,如果图像的网络服务器较慢,不会导致我的应用程序锁定。我添加了NSLog行,以便在控制台中查看此代码何时执行完毕。
我已经注意到一致性的问题是:在代码完成执行后大约5秒钟,我的应用程序才更新图像。但是,如果我单独使用此代码而不将其放入NSOperationQueue中,则似乎几乎立即更新图像。
这种滞后并不完全是由于网络服务器缓慢...我可以在Safari中加载图像URL,只需要不到一秒钟的时间,或者我可以使用相同的代码而不使用NSOperationQueue来更快地加载它。
有没有办法在显示我的图像之前减少延迟,同时继续使用NSOperationQueue?