2015-12-16 27 views
1

這裏是我的異步Image Loader代碼。swift 2.x如何使用try catch

編譯錯誤和警告。

警告>>>'try'表達式內沒有發生調用拋出函數的情況。

我的第一個代碼>>>

let getImage = UIImage(data: NSData(contentsOfURL: NSURL(string: imageURL)!)!) 
completion(result: getImage!) 

但是這個代碼有錯誤,無線連接沒有錯誤

無線網絡斷開連接有錯誤。

所以我想用試試看。

do{ 
    let getImage = try UIImage(data: NSData(contentsOfURL: NSURL(string: imageURL)!)!) 
    completion(result: getImage!); 
} 
catch 
{ 
    print("NOT CONNECTED") 
} 

我哪裏錯了?

+0

我很慚愧我一點英語T_T .. ... –

回答

0

的UIImage(數據:數據)不拋出任何異常,所以你不能只使用嘗試,趕上

相反,你可以使用這樣的事情

if let data = NSData(contentsOfURL: NSURL(string: "")!){ 
    if let getImage = UIImage(data: data) { 
     completion(result: getImage); 
    } 
} 
+0

但是'NSData(contentsOfURL:NSURL(string:imageURL)!)'不會拋出一個,對嗎? –

+0

@mad_manny不拋出錯誤,如果你想拋出,你必須定製你自己的錯誤,如果你選擇點擊'contentsOfURL''看到它不拋出錯誤,但像'contentsOfFile'類似 – Tj3n

+0

像@ Tj3n提到NSData(contentsOfURL:)不會引發異常,但如果您使用NSData(contentsOfURL:,options:),它會拋出 - 您可以從xcode上的自動完成菜單中看到這些內容 – RJE