在我的iPhone应用程序中,我使用以下代码加载图像:
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
如何查看是否已加载图片?我的意思是有时它不会给出任何错误,但我有空白空格而不是图像。我想检查它是否已完全加载,如果没有,请再次尝试。
谢谢
答案 0 :(得分:3)
首先,请注意dataWithContentsOfURL:
是一个阻止API,如果在主线程上使用,将导致您的应用挂起直到完成。如果您在慢速连接(例如3G或EDGE)上使用此代码,则在图片加载之前,您的应用似乎没有响应 - 您不希望这样。
您应该考虑以下选项之一:
NSURLConnection
及其代理方法下载图像数据,创建图像对象并在完成后更新用户界面dataWithContentsOfURL:
的调用并将其分派到异步队列所有这些都是针对另一个问题的。至于您的实际问题,您可以检查返回的数据对象是否有效。文档声明如果无法创建数据对象,则此方法返回nil。
如果你想知道它失败的原因,你应该使用dataWithContentsOfURL:options:error:
并传递一个错误指针,你可以检查它何时失败。
但是,正如我所说,如果您使用NSURLConnection
方法,您将能够通过实施connection:didFailWithError:
委托方法来检查其失败原因。