存储到“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 中存储整数