2017-11-11 159 views
0

我使用的Xcode 9,斯威夫特4斯威夫特4:無法將類型的值「數據」預期參數類型「數據」

我嘗試使用下面的代碼,以顯示從URL ImageView的圖像:

func getImageFromUrl(sourceUrl: String) -> UIImage { 
     let url = URL(string: sourceUrl) 
     let dict = NSDictionary(contentsOf: url!) 
     let data = Data(dictionary: dict!) 
     let image = UIImage(data: data!) 
     return image 
} 

但我在let image = UIImage(data: data!)中遇到了錯誤。

編譯器說:

無法將類型「數據」預期參數類型「數據」

我在做什麼錯誤的價值?

回答

0

試試這個,

func getImageFromUrl(sourceUrl: String) -> UIImage { 
    let imageData = try! Data(contentsOf: (URL(string: sourceUrl))!) 
    let image = UIImage(data: imageData) 
    return image! 
} 

//代碼的另一個版本,您可以檢查

func getImageFromUrl(sourceUrl: String) -> UIImage? { 
    if let imageData = try? Data(contentsOf:URL(string: sourceUrl)) { 
    return UIImage(data: imageData) 
    } 
return nil 
} 
+0

當我嘗試這一點,我得到了調用錯誤'不正確的參數標籤(有'contentsOf:',期望'字典:')' –

+0

仍然,你得到一個錯誤嘗試這個鏈接可能會有所幫助https://stackoverflow.com/questions/29472149/how-to-display-an-image - 使用 - 網址 – Ashish

+0

如果確定從URL你得到圖像使用編輯的功能,否則你可以檢查無條件還@Inderkumar說,仍然有問題的評論! – Ashish

0
/// Returns nil if image data is not correct or some network error has happened 
func getImageFromUrl(sourceUrl: String) -> UIImage? { 
    if let url = URL(string: sourceUrl) { 
    if let imageData = try? Data(contentsOf:url) { 
     return UIImage(data: imageData) 
    } 
    } 
    return nil 
} 
相關問題