【发布时间】:2023-03-05 20:36:01
【问题描述】:
如果'sender'在函数的参数中是 UIButton 类型,为什么不能使用点运算符显式显示它从 UIButton 类继承?它是否与 Swift 的类型推断功能有关,或者在这种情况下键入 'UIButton.sender' 是错误的?我是 OOP 的新手,仍在弄清楚属性如何从 Swift 中的类(例如 UIButton)继承。
@IBAction private func touchDigit(sender: UIButton) {
let digit = UIButton.sender.currentTitle! // ERROR unless UIButton is removed
if userIsInTheMiddleOfTyping {
let textCurrentlyInDisplay = display.text!
display.text = textCurrentlyInDisplay + digit
} else {
display.text = digit
}
userIsInTheMiddleOfTyping = true
}
【问题讨论】:
-
let digit = sender.currentTitle!最有可能......但这里展开的力量仍然让我扬起眉毛。 -
谢谢!为避免强制解包,这会是使用可选绑定的情况吗?我听说如果可以保证在某个时候设置某些东西,那么强制展开可能会很好,尽管正如你所暗示的那样有风险。