如何从单元中检索detailedText然后在函数中使用它?

我试图检索UITableView单元格(这是一个电话号码“字符串”)中包含的详细文本,然后在将打个电话的功能中使用它。如何从单元中检索detailedText然后在函数中使用它?

  • 问题:

    我的应用程序保持与错误崩溃“致命错误:意外发现零而展开的可选值” 即使是变量中的值。

我敢肯定,我在做什么毛病力展开可选

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

let cell = tableView.cellForRowAtIndexPath(indexPath)

let getPhone = cell?.detailTextLabel?.text

if indexPath.section == 0 && indexPath.row == 0 {

if let phoneNumber = getPhone{

openPhoneApp(phoneNumber)

}

}

// Open Phone App

func openPhoneApp(phoneNum: String){

UIApplication.sharedApplication().openURL(NSURL(string: "tel:\(phoneNum)")!)

}

回答:

不要使用武力,如果展开你不是100%确定它可以被解开。尽可能避免它!

你的openPhoneApp函数必须收到一个非零字符串,所以一切正常,直到那一刻。

尝试更换您的力展开像这样的东西:

func openPhoneApp(phoneNum: String) { 

guard let url = NSURL(string: "tel:\(phoneNum)") else {

print("badly formed telephone url")

return

}

UIApplication.sharedApplication().openURL(url)

}


虽然我认为你的函数的名字所暗示的,它会打开手机的应用程序,所以也许你应该去问一个正确形成的URL,就像这样:

func openPhoneApp(phoneURL: NSURL) { 

UIApplication.sharedApplication().openURL(phoneURL)

}

和检查这种东西甚至称它之前:

if let phone = getPhone, phoneURL = NSURL(string: "tel:\(phone)") { 

openPhoneApp(phoneURL)

}

回答:

你有没有检查phoneNumber的变量的值?它可能是零。

你可以检查这个答案:我认为这会解决你的问题。

What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?

明确这个答案

https://stackoverflow.com/a/35683816/5660422

回答:

请使用电话://方案,并随时调用

UIApplication.sharedApplication().canOpenURL 

以上是 如何从单元中检索detailedText然后在函数中使用它? 的全部内容, 来源链接: utcz.com/qa/266533.html

回到顶部