698 Stimmen

@selector() in Swift?

Ich versuche, einen NSTimer in Swift zu erstellen, aber ich habe einige Probleme.

NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true)

test() ist eine Funktion in derselben Klasse.


Ich bekomme einen Fehler im Editor:

Konnte keine Überladung für 'init' finden, die die bereitgestellten Argumente akzeptiert

Wenn ich selector: test() zu selector: nil ändere, verschwindet der Fehler.

Ich habe versucht:

  • selector: test()
  • selector: test
  • selector: Selector(test())

Aber nichts funktioniert und ich kann keine Lösung in den Referenzen finden.

1voto

Thar Htet Punkte 11

Ändere als einfachen Stringnamen im Methodenaufruf für Selektor-Syntax

var timer1 : NSTimer? = nil
timer1= NSTimer(timeInterval: 0.1, target: self, selector: Selector("test"), userInfo: nil, repeats: true)

Danach tippe func test().

0voto

CrazyPro007 Punkte 850

Für Swift 3

//Beispielcode zum Erstellen eines Timers

Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(updateTimer)), userInfo: nil, repeats: true)

WO
timeInterval:- Intervall, in dem der Timer ausgelöst werden soll, z.B. 1s, 10s, 100s usw. [Sein Wert ist in Sekunden]
target:- Funktion, die auf die Klasse zeigt. Hier zeige ich also auf die aktuelle Klasse.
selector:- Funktion, die ausgeführt wird, wenn der Timer ausgelöst wird.

func updateTimer(){
    //Implementierung
}

repeats:- true/false gibt an, ob der Timer immer wieder aufgerufen werden soll.

0voto

Mahesh Chaudhari Punkte 759

Selector in Swift 4:

button.addTarget(self, action: #selector(buttonTapped(sender:)), for: UIControlEvents.touchUpInside)

Translated:

Selektor in Swift 4:

button.addTarget(self, action: #selector(buttonTapped(sender:)), for: UIControlEvents.touchUpInside)

-2voto

Mustajab Haider Punkte 119

Für Swift 3

let timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(self.test), userInfo: nil, repeats: true)

Funktionsdeklaration in der gleichen Klasse:

@objc func test()
{
    // meine Funktion
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X