Ios 如何在openURL swift中捕获错误的URL
如果我的url末尾有一个空格,它将与EXC_BAD_指令崩溃 我原以为canOpenURL会被错误的URL所捕获,但事实并非如此Ios 如何在openURL swift中捕获错误的URL,ios,swift2,Ios,Swift2,如果我的url末尾有一个空格,它将与EXC_BAD_指令崩溃 我原以为canOpenURL会被错误的URL所捕获,但事实并非如此 if let strurl = cell.url{ if (UIApplication.sharedApplication().canOpenURL(NSURL(string:strurl)!)) { UIApplication.sharedApplication().openURL(NSURL(string:strurl)!); }
if let strurl = cell.url{
if (UIApplication.sharedApplication().canOpenURL(NSURL(string:strurl)!)) {
UIApplication.sharedApplication().openURL(NSURL(string:strurl)!);
}
}
在我的例子中,一个在末尾有额外空间的URL会使它崩溃。我可以修剪空白,但是其他的呢?是否有适当的方法捕获此错误?您正在强制展开
NSURL
,如果恰好是nil
,则会导致应用程序崩溃。要检查URL的有效性,还应在URL本身上使用if let
if let strurl = cell.url,
let url = NSURL(string: strurl) {
if (UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
}