2016-04-28 76 views
0

嘗試設置appURL時,此代碼塊失敗,即使if測試成功並且託管對象聯繫人已將所有字段設置爲非零值並且對於某些contact.facebook有一個值,所以我不知道爲什麼我得到試圖解開時發現零?字段已確認值,但仍然出現解包錯誤?

+0

contact.facebook返回什麼?如果使用構造,你可以安全地打開這個值。 – Sahil

+0

經過這麼長時間才發現錯誤,結果是因爲contact.facebook在字面值中有一個空格,而且它是NSURL拋出一個搖擺不定的!將代碼更改爲現在使用正則表達式! – Piginhat

+0

這很好,如果你發現問題。 – Sahil

回答

1

我建議做一個更好的方式,如:

func openFacebook() { 

    if let contact = contact.facebook where contact != "" { 

     // build url to users facebook page 
     let appURL = NSURL(string: String(format: "fb://profile=%@", contact))! 

     // build url to user page on facebook web site 
     let webURL = NSURL(string: String(format: "http://www.facebook.com/%@", contact))! 

     openURL(appURL, webURL: webURL) 
    } 
} 

我認爲這將更好的更清潔的方式做nil檢查,並且不強制後來unwraping值。

相關問題