- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我正在 iTunes 上关注 iOS 8 的 Switf 视频类(class)(https://itunes.com/StanfordSwift 如果有人感兴趣,它是免费的),好吧,现在当然可以使用 iOS 9 了,我想我遇到了问题不同的版本,我在网上找不到任何关于此的信息。我希望任何阅读本文的人都能帮助我。
该项目是关于计算器的,所以我在 UI 中有带数字的按钮,这些按钮将其值 (currentTitle) 发送到我的 appendDigit 函数。 Xcode 没有标记任何错误,但仍然在运行时按下按钮时出现 fatal error ,老实说,我不明白发生了什么。
我尝试了设置和 IF 语句来确定它何时可用 currentTitle,但是,这根本没有帮助,因为我需要获取按钮编号。
代码如下:
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle!
if userIsInTheMiddleOfTypingANumber {
display.text = display.text! + digit
}else{
display.text = digit
userIsInTheMiddleOfTypingANumber = true
}
}
导致错误的行是:let digit = sender.currentTitle!
这也是我得到的屏幕截图,似乎按钮正在发送空值...但如您所见,有数字!
谢谢大家!
最佳答案
按钮上有数字,您声称。但我认为他们中的一些人或其中之一不会。
崩溃是由解包 Optional 值引起的,它是以下行:
let digit = sender.currentTitle!
通过查看 Storyboard中的布局,我认为您将很多按钮连接到相同的 IBAction
方法,这非常好。
但如前所述,其中一些或其中之一的 currentTitle
未以编程方式或在 Storyboard(“标题”)中设置,因此发生了崩溃。
因此,请仔细检查是否其中一个或其中一些currentTitle
未设置。
我能够通过故意在其中一个按钮中遗漏 currentTitle
来重现错误。崩溃的发生与您正在经历的崩溃完全一样:
EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
或者,可以以更安全的方式进行:
@IBAction func appendDigit(sender: UIButton)
{
if let digit = sender.currentTitle
{
if userIsInTheMiddleOfTypingANumber
{
display.text = display.text! + digit
}
else
{
display.text = digit
userIsInTheMiddleOfTypingANumber = true
}
}
}
关于ios - Swift 在按下按钮并获取其 currentTitle 后返回 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35519628/
我是一名优秀的程序员,十分优秀!