gpt4 book ai didi

iphone - 如何检查 iPhone 中是否使用 dataWithContentsOfURL 加载了图像?

转载 作者:行者123 更新时间:2023-12-03 20:57:43 24 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我使用这行代码加载图像:

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];

如何检查图像是否已加载?我的意思是有时它不会给出任何错误,但我有空白而不是图像。我想检查它是否已完全加载,如果没有,请尝试重试。

谢谢

最佳答案

首先,请注意dataWithContentsOfURL:是一个阻塞 API,如果在主线程上使用,将导致您的应用程序挂起直到完成。如果您在 3G 或 EDGE 等慢速连接上使用此代码,您的应用将在图像加载之前显示为无响应 - 您不希望出现这种情况。

您应该考虑以下选项之一:

  • 使用NSURLConnection它是下载图像数据、创建图像对象并在完成后更新 UI 的委托(delegate)方法
  • 使用 block 来结束对 dataWithContentsOfURL: 的调用并将其分派(dispatch)到异步队列上
  • 在单独的线程上执行此工作(不推荐,因为前两个选项可以用更少的代码实现相同的效果)。

所有这些都是为了另一个问题。至于您的实际问题,您可以检查返回的数据对象是否有效。文档指出,如果无法创建数据对象,则此方法返回 nil。

如果你想知道失败的原因,你应该使用 dataWithContentsOfURL:options:error:并传递一个错误指针,您可以在失败时检查该错误指针。

但是,正如我所说,如果您使用 NSURLConnection方法,您将能够通过执行connection:didFailWithError:来检查其失败原因。委托(delegate)方法。

关于iphone - 如何检查 iPhone 中是否使用 dataWithContentsOfURL 加载了图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3822903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com