0
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];

我使用上面的代码然后检查

if (image)
    return image;
else
{
    NSLog(@"no image on URL");
    return nil;
}

但有时(非常非常罕见)我没有从有效的 url 获得图像。网址 100% 有效。

通常加载一张图片需要将近一秒钟的时间,但是当它无法加载一张图片时,这个过程需要更多的时间(20-200秒)。然后我得到“URL 上没有图像”。

有没有更好的方法从 URL 获取图片?我宁愿在一秒钟内得到“URL 上没有图像”,然后等待这么久。

PS 对不起我糟糕的英语

4

1 回答 1

1

您想使用它是非常罕见的dataWithContentsOfURL:。这是一个阻塞调用,因此需要一个后台线程。它也很不灵活,并且不能提供良好的错误返回(这是您遇到的问题)。

请参阅URL 加载系统编程指南。通常,您需要NSURLConnection为此类工作配置异步。如果您正在执行大量网络操作,您可能需要考虑像MKNetworkKitAFNetworking这样的框架,它们可以为您处理很多复杂性。

于 2012-05-10T05:27:22.047 回答