无法识别的选择器发送到实例 0x7f90f1f04180
unrecognized selector sent to instance 0x7f90f1f04180
我是 swift 的新手。我正在使用 xcode 版本 8 beta 4。每当我滚动日期选择器时,我都会遇到错误。我读过 very similar problem,但那里的答案并没有解决我的问题。下面是我的代码:
func textFieldDidBeginEditing(_ textField: UITextField) {
let datePicker = UIDatePicker()
textField.inputView = datePicker
datePicker.addTarget(self, action: Selector("datePickerChanged:"), for: .valueChanged)
}
func datePickerChanged(sender: UIDatePicker){
let formatter = DateFormatter()
formatter.dateStyle = .long
dateLog.text = formatter.string(from: sender.date)
}
当我点击我的文本字段时,UIDatePicker
显示得很好,但是当我开始滚动日期时,出现以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyApp.ViewController datePickerChanged:]: unrecognized selector sent to instance 0x7f90f1f04180'
Selector(String)
已弃用。您应该开始使用新语法 #selector
.
此外,不需要末尾的冒号。
因此,您的代码应如下所示:
datePicker.addTarget(self, action: #selector(datePickerChanged),
for: .valueChanged)
- 将
Selector
更改为 #selector
- 将
for
更改为 forControlEvents
将.valueChanged
更改为.ValueChanged
datePicker.addTarget(self, action: #selector(yourClass.datePickerChanged), forControlEvents: .ValueChanged)
我是 swift 的新手。我正在使用 xcode 版本 8 beta 4。每当我滚动日期选择器时,我都会遇到错误。我读过 very similar problem,但那里的答案并没有解决我的问题。下面是我的代码:
func textFieldDidBeginEditing(_ textField: UITextField) {
let datePicker = UIDatePicker()
textField.inputView = datePicker
datePicker.addTarget(self, action: Selector("datePickerChanged:"), for: .valueChanged)
}
func datePickerChanged(sender: UIDatePicker){
let formatter = DateFormatter()
formatter.dateStyle = .long
dateLog.text = formatter.string(from: sender.date)
}
当我点击我的文本字段时,UIDatePicker
显示得很好,但是当我开始滚动日期时,出现以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyApp.ViewController datePickerChanged:]: unrecognized selector sent to instance 0x7f90f1f04180'
Selector(String)
已弃用。您应该开始使用新语法 #selector
.
此外,不需要末尾的冒号。
因此,您的代码应如下所示:
datePicker.addTarget(self, action: #selector(datePickerChanged),
for: .valueChanged)
- 将
Selector
更改为#selector
- 将
for
更改为forControlEvents
将
.valueChanged
更改为.ValueChanged
datePicker.addTarget(self, action: #selector(yourClass.datePickerChanged), forControlEvents: .ValueChanged)