【发布时间】:2017-01-10 03:51:11
【问题描述】:
我正在尝试将UIStepper 合并到UITextField 中,同时增加步进器的值,UITextField 也随之更新为该值。我不断收到错误:
“由于未捕获的异常''NSInvalidArgumentException'而终止应用程序,原因:'-[Calculator.SplitViewController stepperValueChanged:]:无法识别的选择器发送到实例0x7fd730c0af30”`
每当我运行我的应用并点击步进器上的“+”按钮时。
有什么解决办法吗?我检查了我的选择器功能,我认为它看起来不错。
override func viewDidLoad() {
super.viewDidLoad()
partyOfStepper.autorepeat = true
partyOfStepper.minimumValue = 1
partyOfStepper.maximumValue = 99
partyOfTextField.text = "\(Int(partyOfStepper.value))"
partyOfStepper.addTarget(self, action: #selector(stepperValueChanged(stepper:)), for: .valueChanged)
}
@IBAction func calculateButtonTapped(_ sender: Any) {
}
func stepperValueChanged(stepper: UIStepper) {
let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField]
stepperMapping[stepper]!.text = "\(Int(stepper.value))"
}
【问题讨论】:
-
使用完整且准确的错误消息更新您的问题。您遗漏了消息的导入部分。
-
您应该将按钮绑定到
calculateButtonTapped,并将步进值更新为stepperValueChanged。 -
在界面构建器(故事板)中检查您已为
UIStepper设置的操作,只需删除该操作即可。
标签: swift swift3 xcode8 uistepper addtarget