我是斯威夫特的新手。我正在使用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
显示正常,但是当我开始滚动日期时,它会给我以下错误:
***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [MyApp.ViewController datePickerChanged:]:无法识别的选择器发送到实例0x7f90f1f04180'
答案 0 :(得分:4)
Selector(String)
已弃用。您应该开始使用新语法#selector
。
此外,不需要结尾处的冒号。
因此,您的代码应如下所示:
datePicker.addTarget(self, action: #selector(datePickerChanged),
for: .valueChanged)
答案 1 :(得分:-1)
Selector
更改为#selector
for
更改为forControlEvents
将.valueChanged
更改为.ValueChanged
datePicker.addTarget(self, action: #selector(yourClass.datePickerChanged), forControlEvents: .ValueChanged)