快速添加:执行被中断,原因:EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0)
Posted
技术标签:
【中文标题】快速添加:执行被中断,原因:EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0)【英文标题】:Swift Addition: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0) 【发布时间】:2016-02-11 18:59:09 【问题描述】:我正在尝试在 Swift 中添加两个数字并打印其总和
import Foundation
func solveMefirst(firstNo: Int , secondNo: Int) -> Int
return firstNo + secondNo
let num1 = readLine()
let num2 = readLine()
var IntNum1 = Int(num1!) ** Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0). **
var IntNum2 = Int(num2!)
let sum = solveMefirst(IntNum1!, secondNo: IntNum2!)
print(sum)
但不幸的是,这个错误出现并停止了操场上的执行。
Execution was interrupted, reason: EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0).
不明白,这有什么问题?
更新
另外请说明如何在 Playground 中运行这个命令行程序?
如何从 Playground 获取输入?
【问题讨论】:
num1
和 num2
为零,您可以在输出中清楚地看到 - 当您打开它们时会发生什么?
你应该阅读What does an exclamation mark mean in the Swift language?,它会有很大帮助。
@EricD。你能解释一下如何在操场上接受标准输入
【参考方案1】:
我使用命令行运行它。我认为您正在使用游乐场,但您没有输入 num1 和 num2。 运行项目后,输入数字 1,然后按 Enter。然后输入第二个并按回车键。它会给你想要的结果。您的代码运行良好。我在这里运行它。
【讨论】:
积极的建议总是值得赞赏的 :) 你能告诉我如何在游乐场运行这段代码吗? 如果您想从用户那里获取输入,最好在 Xcode 中打开基于控制台的应用程序。此外,它在 Raywenderlich 教程中提到,操场不允许用户输入:Reference Tutorial of RayWenderlich:【参考方案2】:它崩溃是因为你强制一个 nil 值导致错误;
如您在左侧阅读的num1= nil
。 它不知道它应该是什么,但有错误。因为当您尝试将值强制为 num1
(这就是“!”所做的)它会崩溃,因为 num1
没有价值。
【讨论】:
是的,也许这就是错误显示 EXC_BAD_INSTRUCTION 的原因以上是关于快速添加:执行被中断,原因:EXC_BAD_INSTRUCTION (Code=EXC_l386_INVOP, subcode=0x0)的主要内容,如果未能解决你的问题,请参考以下文章
错误:执行被中断,原因:断点 1.2。 Xcode 7.1,斯威夫特
Swift JSONDecoder 解码错误:错误:执行被中断,原因:EXC_BAD_ACCESS (code=1, address=0x5e48)
关于 Swift:执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
模糊的操场错误:执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Swift 扩展异常执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
Xcode Playground:“错误:执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”