2015-12-16 34 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