【发布时间】:2015-12-10 15:02:09
【问题描述】:
我在 StackOverflow 上发现了几个类似的问题,但没有一个能解决我的问题。
我正在尝试从 url 获取图像。这是我的做法:
let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg")
let data = NSData(contentsOfURL: url!)
let image = UIImage(data: data!)
但我收到一条错误消息,告诉我data 为零。
我该如何解决这个问题?谢谢。
更新
以下是一些错误截图:
【问题讨论】:
-
您的代码运行良好。我认为由于某些网络问题/限制,您得到的数据为零。我在操场上检查了相同的代码,我得到了结果。
-
@MidhunMP 我在操场上试过了,它奏效了。但是当我在一个新创建的项目的
viewDidLoad中运行它时,我得到了同样的错误 -
试试
NSData(contentsOfURL:option:error)。您可能会收到错误消息。这可能与 iOS9(以及要设置的应用传输安全性)缺少“https”有关吗? -
说真的……?!你真的想在主线程上使用同步请求从外部资源中获取图像吗?为什么人们从不阅读文档?! "不要使用这种同步方式来请求基于网络的URL。对于基于网络的URL,这种方法在慢速网络上会阻塞当前线程几十秒,导致用户体验很差,而在iOS中,可能会导致您的应用被终止。” (source)
-
@holex 我完全忘记了,哈哈……你才是真正的 MVP