gpt4 book ai didi

ios - 将字符串设置为可选值的问题

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

如何将按钮内的标签传递给下一个事件,

这是我的代码,但它不起作用

@IBOutlet weak var elecB: UIButton!

我的 prepareForSegue 代码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var result:searchResultView = segue.destinationViewController as! searchResultView
if elecB.selected{
result.cat = elecB.titleLabel?.text!
}
}

它告诉我这行代码有错误

result.cat = elecB.titleLabel?.text!

cat 是一个字符串

任何人都可以帮助我吗,我只想将单击的按钮内的标签传递给下一个 View Controller

最佳答案

titleLabel 的声明更改为 titleLabel: UILabel!titleLabel: UILabel,因为您实际上不需要它是可选的.听起来您有理由期望该标签一直存在。

使 cat 可选也不是最好的解决方案,因为您希望该字符串始终具有值。所以让 cat 保持原样,并使您的标题标签成为非可选的,或者如果 Xcode 出错,则隐式展开 (!)。

?! 是什么意思?

? 声明后意味着该变量是可选的,并且可以合理地排除为nil(这也允许您将其设置为 nil)。每次要使用它时,您还必须在变量名称后跟一个 ?,或者将它包装在一个 if let a = myOptionalVar {...} 中,所以该代码只有在变量不是nil时才会执行。

声明后的 ! 使其成为隐式展开的可选。这意味着变量可以是nil,但在大多数情况下假设不是nil,所以你不必在每次要使用它时都跟在 ! 后面。但是请注意,如果当您尝试使用该变量时恰好为 nil,您的程序将会崩溃。

! 只应在绝对必要时使用,因为它本质上是不安全的。例如,如果 Interface Builder 要求 @IBOutlet 变量是可选的,最好将它们设为 !,因为它们会在您的类从 Storyboard创建时自动初始化, 并且在剩下的时间里会有一个值。

两者都不使用意味着该变量不是可选的,即它必须始终有一个值,并且不能是nil

关于ios - 将字符串设置为可选值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299283/

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