如何从单元中检索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