gpt4 book ai didi

ios - Swift 在按下按钮并获取其 currentTitle 后返回 fatal error

转载 作者:行者123 更新时间:2023-11-28 08:45:11 25 4
gpt4 key购买 nike

所以,我正在 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!

这也是我得到的屏幕截图,似乎按钮正在发送空值...但如您所见,有数字!

enter image description here

谢谢大家!

最佳答案

按钮上有数字,您声称。但我认为他们中的一些人或其中之一不会。

崩溃是由解包 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com