作者:对不起太依赖你 | 来源:互联网 | 2023-05-23 23:30
我试图从我的应用程序下载图片
请求失败,错误为NSURLErrorDomain,代码实际为-1100.网址应该是正确的,因为我在浏览器中检查了它.谁知道为什么?
let userImageURL: String! = "http://i.imgur.com/QhCzQoR.jpg";
let url = NSURL(fileURLWithPath: userImageURL);
let request:NSURLRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: { (response:NSURLResponse!, imageData:NSData!, error:NSError!) -> Void in
let image = UIImage(data: imageData!);
})
Reedy..
21
你遇到这个问题的原因是你曾经使用过
let url = NSURL(fileURLWithPath: userImageURL);
相反,你应该使用:
let url = NSURL(string: userImageUrl)
Larme..
11
我在Objective-C中编码,应该很容易在Swift中进行转换(实际上是小修改,但解释与代码没有多大关系).如果您检查错误完成消息,您将获得:
错误域= NSURLErrorDomain代码= -1100"在此服务器上找不到请求的URL." UserInfo = 0x7997b7e0 {NSErrorFailingURLStringKey = file:/// http:/i.imgur.com/QhCzQoR.jpg,NSErrorFailingURLKey = file:/// http:/i.imgur.com/QhCzQoR.jpg,NSLocalizedDescription =请求的URL是在此服务器上找不到.,NSUnderlyingError = 0x799f3080"在此服务器上找不到请求的URL."}
显然,如果你仔细查看URL,那么就file:///http:/i.imgur.com/QhCzQoR.jpg
不是想要的URL了.如果你记录url.absoluteString
,你会看到你的URL,就是你这样设置它.
为什么?因为你用fileURLWithPath:
而不是URLWithString:
.所以改变你的行:
let url = NSURL(URLWithString: userImageURL);
关于这两者之间差异的一些讨论:
NSURL的URLWithString和fileURLWithPath之间有什么区别?
或者文件.
更新:在Swift 4中:
let url = URL(string: userImageURL)
我们还建议从Swift3 +中避免使用Swift等效时的NSStuff:NSURL
=> URL
.
1> Reedy..:
你遇到这个问题的原因是你曾经使用过
let url = NSURL(fileURLWithPath: userImageURL);
相反,你应该使用:
let url = NSURL(string: userImageUrl)
2> Larme..:
我在Objective-C中编码,应该很容易在Swift中进行转换(实际上是小修改,但解释与代码没有多大关系).如果您检查错误完成消息,您将获得:
错误域= NSURLErrorDomain代码= -1100"在此服务器上找不到请求的URL." UserInfo = 0x7997b7e0 {NSErrorFailingURLStringKey = file:/// http:/i.imgur.com/QhCzQoR.jpg,NSErrorFailingURLKey = file:/// http:/i.imgur.com/QhCzQoR.jpg,NSLocalizedDescription =请求的URL是在此服务器上找不到.,NSUnderlyingError = 0x799f3080"在此服务器上找不到请求的URL."}
显然,如果你仔细查看URL,那么就file:///http:/i.imgur.com/QhCzQoR.jpg
不是想要的URL了.如果你记录url.absoluteString
,你会看到你的URL,就是你这样设置它.
为什么?因为你用fileURLWithPath:
而不是URLWithString:
.所以改变你的行:
let url = NSURL(URLWithString: userImageURL);
关于这两者之间差异的一些讨论:
NSURL的URLWithString和fileURLWithPath之间有什么区别?
或者文件.
更新:在Swift 4中:
let url = URL(string: userImageURL)
我们还建议从Swift3 +中避免使用Swift等效时的NSStuff:NSURL
=> URL
.