Swift 3を使用してXcode 8.3.3およびiOS 10.3でiOS開発を学習しています。アカウント作成フォームを作成しようとしています' - [UITextField date]:インスタンスに送信された認識できないセレクタ0x7f89277121c0'
@IBAction func showDatePicker(_ sender: UITextField) {
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.date
datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date())
dateOfBirth.inputView = datePicker
datePicker.addTarget(self, action: #selector(self.datePickerValueChanged), for: UIControlEvents.valueChanged)
}
@objc func datePickerValueChanged(_ picker: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.medium
dateFormatter.timeStyle = DateFormatter.Style.none
dateOfBirth.text = dateFormatter.string(from: picker.date)
}
私は上記を実行すると、私はエラーを取得する:そのを注入しようとしているような
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITextField date]: unrecognized selector sent to instance 0x7f89277121c0'
私にはそれが見え、ユーザが誕生するUITextFieldの日のタッチアップで行いUIDatePicker UITextFieldの 'sender'値をdatePickerValueChangedフィールドに代入します。これは、t UIDatePicker型の値を返し、エラーを引き起こします。
datePicker.addTarget(self, action: #selector(self.datePickerValueChanged(datePicker)), for: UIControlEvents.valueChanged)
が、Xcodeのは、その後、私にエラーを与える:私は、私は明示的にdatePickerValueChangedメソッドに日付ピッカーオブジェクトを渡された場所にそれを変更しようとした
Argument of '#selector' does not refer to an '@objc' method, property, or initializer
My機能は、その前に@objcを持っています私はなぜそれを許さないのか混乱しています。
だから、私の究極の質問は:にはどうすればdatePickerValueChangedに渡された値の型UIDatePicker、すなわち、日付ピッカーオブジェクトであることを確認していますか?
は、あなたが掃除やプロジェクトを再構築しようとしたことがありますか? – QPDev
このエラーは、日付ピッカーが最初に表示されたとき、またはピッカーで日付を選択したときに発生しますか? –
私はクリーニングを試みましたが、それでも失敗します。また、これは日付ピッカーが表示される前に行われます。 – user1011376