快速错误: Type Underflow: Exec_Bad_Instruction

标签 swift

为什么我会收到错误“EXEC_BAD_INSTRUCTION”:

let r = Double(arc4random_uniform(181) - 90)

虽然这工作正常:

let r = Double(arc4random_uniform(181)) - 90

在 XCode 7.1 中使用 Swift。

最佳答案

这不是一个错误,这是 Swift 的一个特性。每当您创建算术上溢或下溢时,Swift 都会故意崩溃。

每当 arc4random_uniform(181) 返回小于 90 的值并且您尝试从中减去 90 时,就会出现算术下溢。由于结果不在无符号 32 位整数的范围内,Swift 通过使程序崩溃来通知您错误。

这不是一个“Double”错误:您永远不会知道“Do​​uble”类型根本参与其中。如果不强制转换为 Double,它也会崩溃。

关于快速错误: Type Underflow: Exec_Bad_Instruction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118314/

相关文章:

ios - 加载 .txt 文件的最佳方式?

ios - 可以自定义IB导航栏中提示字符串的字体吗?

ios - 使用 GMSPlaceField.addressComponents 的 findPlaceLikelihoodsFromCurrentLocation 失败

swift - 从 GoogleMaps API 获取数据后,注释不会显示在 MKMapView 上

swift - 快速增加年份设置日历单位月份

ios - Swift - 推送到新 ViewController 时黑色底栏

ios - 如何在 Swift 3/4 中使用相机获取位置?

ios - CIImage contentsOfUrl 无法将 UIImage 转换为 PNG

swift - 在 Combine 中,您如何创建一个发送一个值但永远不会完成的发布者?

Swift、内存解决了 CFDataGetBytePtr 的问题