Przeczytałem wiele tutoriali, a nawet oficjalną dokumentację Apple i nie mogę zrozumieć, co jest nie tak z tym kodem.Jak poprawnie używać selektorów w szybkim tempie 4
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
}
W czasie wykonywania klikam pole tekstowe, a pojawi się UIDatePicker. Wykonywana jest funkcja, do której prowadzi selektor. Jak tylko kliknąć obiekt UI poza UIDatePicker, aplikacja wywala z tego błędu:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[YourApp.PromiseViewController dueDateChanged:]: unrecognized selector sent to instance 0x100b12ae0'
Co ja nie rozumiem, jest to, że „selektor” lub wskaźnik do żądanej funkcji początkowego ujęcia. Jednak, gdy wyzwalam inne zdarzenie z innego obiektu interfejsu użytkownika, ten wyjątek jest generowany.
Dlaczego tak się dzieje?
Nie należy uruchamiać tego wyjątku, gdy początkowo wywoływana jest nazwa datePickerValueChanged()
?
Nie mogę uwierzyć, że nie widzę. Dzięki wielkie. Zaczynałem wątpić w samą logikę mojego istnienia. Twoje zdrowie! –