2017-08-25 49 views
0

我嘗試下載圖片:URLSession.shared.dataTask不能下載圖像與瑞典網址

URLSession.shared.dataTask(with: URL(string: urlString)! as URL, completionHandler: { (data, response, error) -> Void in 

      ... 

     }).resume() 

該代碼完全適用於網址:

https://website.com/abo_beach.jpg 

但是,當我嘗試下載瑞典鏈接:

https://website.com/åbo_beach.jpg 

以字母 「A」,我得到這個錯誤: 致命錯誤:意外地發現零,同時展開一個可選值

如何從瑞典鏈接下載圖片?

回答

1

answer by Abdelahad Darwish是一種改進,可能會修復您的特定問題(非法字符),但一般而言,您希望檢測這些類型的錯誤並優雅地失敗,而不是冒險崩潰您的應用程序。

特別是,從!遠離上返回一個可選的值的方法(即,有可能會失敗),並添加必要的檢查,而不是:

var urlString: String = "https://website.com/åbo_beach.jpg".stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! 

guard let url = URL(string: urlString) else { 
    // String can not yield a valid URL; do someting! 
    return 
} 

URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) -> Void in 
     // ... 
}).resume()