UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];
我使用上面的代码,然后检查
if (image)
return image;
else
{
NSLog(@"no image on URL");
return nil;
}
但有时(非常非常少)我没有从有效的网址获取图片。网址有效100%。
通常需要将近一秒的时间来加载图片,但是当它无法加载图片时,该过程需要更多的时间(20-200秒)。 然后我得到“URL上没有图像”。
有没有更好的方法从网址获取图片? 我宁愿在一秒内得到“没有关于URL的图像”,然后等待这么久。
P.S。为我可怜的英语而苦恼
答案 0 :(得分:1)
您想要使用dataWithContentsOfURL:
是非常罕见的。这是一个阻塞调用,因此需要一个后台线程。它也不灵活,不能提供良好的错误返回(这是你遇到的问题)。
请参阅URL Loading System Programming Guide。通常,您需要为此类工作配置异步NSURLConnection
。如果您正在进行大量的网络操作,您可能需要考虑像MKNetworkKit或AFNetworking这样的框架,它可以为您处理许多复杂问题。