存储到“Int Phone Number”中时整数溢出

Posted

技术标签:

【中文标题】存储到“Int Phone Number”中时整数溢出【英文标题】:Integer overflows when stored into 'Int Phone Number 【发布时间】:2016-09-15 02:01:46 【问题描述】:

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

@IBAction func dialNumber(_ sender: AnyObject) 

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

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

【问题讨论】:

【参考方案1】:

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

"tel://8708382937"

或者更明智:

"tel:8708382937"

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

【讨论】:

非常感谢!感谢您花时间向我展示我的错误。【参考方案2】:

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

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

【讨论】:

以上是关于存储到“Int Phone Number”中时整数溢出的主要内容,如果未能解决你的问题,请参考以下文章

为什么在将大于i32的数字存储到变量中时,我没有得到文字超出范围错误?

当我将 .txt 文件加载到我的程序中时,如何删除这些随机整数(我根本没有输入)

使用 Swift 和 XCode 在 Core Data 中存储整数

python中时间序列数据的简单(但大)读/写

当存储在变量中时,Socket.io 发射到 socket.id 不起作用

存储在 RabbitMQ 持久存储中时加密消息