Kann mir jemand sagen, warum dieser Code die Fehlermeldung gibt "Argument von '#selector' bezieht sich nicht auf '@objc' Methode, Eigenschaft oder Initialisierer "?Argument von '#selector' bezieht sich nicht auf '@objc' Methode, Eigenschaft oder Initialisierer
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector:#selector(updateTimer(until: 3)), userInfo: nil, repeats: true)
Hier ist die Funktion:
func updateTimer(until endTime: Int) {
counter -= 1
timeLabel.text = String(counter)
if counter == endTime {
step += 1
}
}
Was ich versucht habe:
1. @objc vor der Funktion Hinzufügen.
Für Timer ist der Parameter erforderlich. * Der Selektor sollte die folgende Signatur haben: timerFireMethod: (einschließlich eines Doppelpunkts, um anzuzeigen, dass die Methode ein Argument benötigt). * Seitennotiz - In Swift 4 ist wahrscheinlich auch das '@ objc' oder' @ obcMembers' der Klasse erforderlich . – Sulthan
@Sulthan Das stimmt nicht. 'updateTimer()' ohne Parameter funktioniert auch. * sollte haben * ist nicht * muss haben * ;-) – vadian