2015-11-22 52 views
1

我在我的代碼如下解纏線:嘗試並抓住解開線?雨燕2.0的XCode 7

UIApplication.sharedApplication().openURL((NSURL(string: url)!))

有時會出現這種致命的錯誤:

fatal error: unexpectedly found nil while unwrapping an Optional value

我知道爲什麼這個錯誤時有發生,但有一種方法可以使try-catch語句圍繞此行

回答

5

不,這不是什麼嘗試和趕上。 !的意思是「如果這是零,然後崩潰。」如果你不是那個意思,那就不要用!(提示:你很少想用!)。使用if-letguard-let

if let url = NSURL(string: urlString) { 
    UIApplication.sharedApplication().openURL(url) 
} 

如果你已經有了一個try塊,想扭轉這種局面變成throw,這就是guard-let適用於:

guard let url = NSURL(string: urlString) else { throw ...your-error... } 
// For the rest of this scope, you can use url normally 
UIApplication.sharedApplication().openURL(url) 
+0

是'throw'的關鍵字「警衛讓」? – Confused

+0

是的,'throw'拋出一個錯誤。 –

+1

乾杯。我知道錯誤是一種類型。還有一個術語。不是描述我默認行爲的隨便詞。 – Confused