存储到“Int电话号码”时,整数溢出

时间:2016-09-15 02:01:47

标签: ios swift

在xcode 8中,我尝试存档时出错。这是代码:

@IBAction func dialNumber(_ sender: AnyObject) {

    if let url = URL(string: "tel://\(8708382937)") {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
}

在以“if let ...”开头的行上,我收到此错误: 整数文字'8708382937'在存储到'Int'时溢出

2 个答案:

答案 0 :(得分:4)

这是预期的并且是正确的错误。你为什么把号码放在\()?这评估为Swift。作为Swift,这是一个字面数字,太大而不适合Int。你几乎肯定是这个意思:

"tel://8708382937"

或者更明智:

"tel:8708382937"

(斜杠特别是HTTP URL方案的一部分。它们不是URL和do not belong on tel URLs的一般部分。)

答案 1 :(得分:0)

没有理由不为URL使用字符串文字。

if let url = URL(string: "tel://8708382937") {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}