将选择器添加到UIStepper-Swift 3的addTarget函数时出错

将选择器添加到UIStepper-Swift 3的addTarget函数时出错,swift,swift3,xcode8,uistepper,addtarget,Swift,Swift3,Xcode8,Uistepper,Addtarget,我试图将UIStepper合并到UITextField中,当递增步进器的值时,UITextField会随之更新到该值。我不断得到错误: “由于未捕获的异常”“NSInvalidArgumentException”,终止应用程序的原因:”-[Calculator.SplitViewController stepperValueChanged:]:发送到实例0x7fd730c0af30的选择器无法识别” 每当我运行应用程序并点击步进器上的“+”按钮时 有什么解决办法吗?我检查了我的选择器功能,我认为

我试图将
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))"

}

您的代码适合我,正如Nariv所说,请确保您以前没有在设计器中为UIStepper创建操作(签入Connections inspector):


用完整准确的错误消息更新您的问题。您遗漏了消息的导入部分。您应该将按钮绑定到
calculateButtonTapped
,并通过
stepperValueChanged
更新步进器值。在界面生成器(故事板)中检查,您已经为该
UIStepper
设置了操作,只需删除该操作即可。
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var partyOfStepper: UIStepper!
    @IBOutlet weak var partyOfTextField: UITextField!

    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)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func stepperValueChanged(stepper: UIStepper) {

        let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField]
        stepperMapping[stepper]!.text = "\(Int(stepper.value))"

    }

}