[英]NSURLErrorDomain with code=-1100
我試圖將圖片從下載到我的應用中
請求失敗,錯誤為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!);
})
您收到此問題的原因是因為您使用過
let url = NSURL(fileURLWithPath: userImageURL);
相反,您應該使用:
let url = NSURL(string: userImageUrl)
我用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 = 0xx7f3080“在此服務器上找不到請求的URL。”}
顯然,如果您仔細查看URL,則有file:///http:/i.imgur.com/QhCzQoR.jpg
,這不是所需的URL。 如果您登錄url.absoluteString
,則會在URL中看到它,是這樣設置的。
為什么? 因為您使用的是fileURLWithPath:
而不是URLWithString:
fileURLWithPath:
因此,請更改您的行:
let url = NSURL(URLWithString: userImageURL);
關於這兩者之間的區別的一些討論: NSURL的URLWithString和fileURLWithPath之間有什么區別? 或doc 。
更新:在Swift 4中:
let url = URL(string: userImageURL)
我們還建議Swift3 +在存在Swift等效項時避免使用NSStuff: NSURL
=> URL
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.