2016-04-28 4 views
0

このコードブロックは、ifテストが成功し、管理オブジェクトの連絡先にすべてのフィールドがnil以外の値に設定されていて、特定のcontact.facebookに値があるため、appURLを設定しようとすると失敗しますアンラップしようとしている間に何も見つかりませんでしたか?フィールドの値は確認されていますが、まだアンラップエラーが発生しますか?

+0

contact.facebookは何を返しますか? let constructを使って、値を安全にラップすることができます。 – Sahil

+0

このエラーを見つけようとしたあと、contact.facebookにリテラル値のスペースがあり、NSURLがぐらつきを放っていたからです。今すぐ正規表現を使用するコードを変更する! – Piginhat

+0

問題が見つかった場合はそれが良いです。 – Sahil

答えて

1

私のようなより良い方法でそれを行うことをお勧め:私は、これは後でunwraping値を強制nilチェックを行うとしないように、より良いクリーンな方法になると思い

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) 
    } 
} 

関連する問題