gpt4 book ai didi

ios - 如何在 swift 4 中正确使用选择器

转载 作者:IT王子 更新时间:2023-10-29 05:35:54 24 4
gpt4 key购买 nike

我看了很多教程甚至苹果官方文档,一定不明白这段代码有什么问题。

var dueDatePicker = UIDatePicker()

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
textField.inputView = dueDatePicker
dueDatePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: UIControlEvents.valueChanged)
}

func datePickerValueChanged(_ sender: UIDatePicker){
//Do Stuff
}

在运行时,我单击 textField 并出现 UIDatePicker。执行选择器指向的函数。只要我单击 UIDatePicker 外部的 UI 对象,应用程序就会崩溃并出现此错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[YourApp.PromiseViewController dueDateChanged:]: unrecognized selector sent to instance 0x100b12ae0'

我不明白的是,“选择器”或指向所需函数的指针最初是被识别的。但是,当我从另一个 UI 对象触发另一个事件时,会抛出此异常。

为什么会这样?

当最初调用datePickerValueChanged() 时不应该触发此异常吗?

最佳答案

只需在你的函数前添加@objc

@objc func datePickerValueChanged(_ sender: UIDatePicker){
//Do Stuff
}

关于ios - 如何在 swift 4 中正确使用选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44688764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com