NSURL使用mailto引发nil异常:

时间:2016-02-25 14:26:47

标签: ios swift uilabel nsurl openurl

我试图在UILabel点击事件上打开邮件。但它引发了致命的错误:

  

在解包可选值时意外地发现了nil。

使用的代码:

func sendMail(sender:UITapGestureRecognizer){
        print("mail::" + self.lblMail.text!) // joe@nts.com is here
        let url = NSURL(string: "mailto:\(self.lblMail.text)")! //url is nil when debugged
        UIApplication.sharedApplication().openURL(url)
    }

2 个答案:

答案 0 :(得分:3)

检查以确保self.lblMail.text为非{n},然后再将其展开if let

if let email = self.lblMail.text {
    let url = NSURL(string: "mailto:\(email)")!
    UIApplication.sharedApplication().openURL(url)
}

如果收到错误:

  

LaunchServices:错误:URL方案mailto没有注册处理程序

确保您在实际设备上运行此代码,而不是iOS模拟器。

答案 1 :(得分:0)

尝试 static