缺乏[UIImage imageWithContentsOfURL]的理由

时间:2014-10-05 21:14:06

标签: ios objective-c cocoa-touch uiimage uikit

Apple明确表示我们应该从使用NSString文件路径的方法迁移到使用NSURL的方法。 (找不到官方文档,希望你能忍受我。)

一个值得注意的例外是[UIImage imageWithContentsOfFile:(NSString *)],它没有相应的[UIImage imageWithContentsOfURL:(NSString *)]

当然有一种解决方法:

[UIImage imageWithData:[NSData dataWithContentsOfURL:(NSURL *)]]

当然这是"丑陋"。 (希望你能再次忍受我。)

这种遗漏是否有特定的记录或直观原因?

1 个答案:

答案 0 :(得分:3)

网址可能需要很长时间才能响应。它们不应该在主线程上获取,因为这会使UI无响应。所以我认为这就是imageWithContentsOfURL无法使用的原因。

我建议使用占位符图像进行启动并在后台线程中获取URL的内容,并在数据可用于更新UIImage时使用通知。