2016-04-28 39 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值。

相关问题