2016-06-29 8 views
1

Problem beim Ausführen der Funktion in einer anderen Klasse als Selektor für NStimer.Swift nstimer zugreifende Funktion andere Klasse

class VariClass 
{ 
    func updateUILoop() 
    { 
     print("updating UI") 
    } 
} 

Im AppDelegate habe ich

let values = VariClass() 

Im AppDelegate ich habe.

let timer = NSTimer(fireDate: NSDate(), interval: 5, target: self, selector: #selector(values.updateUILoop), userInfo: nil, repeats: true) 

Die Funktion funktioniert perfekt, wenn ich es manuell ausführe.

getvalues.updateUILoop() 

Antwort

2

Sie wollen NSTimerfunc updateUILoop auf dem values Objekt aufzurufen, so dass das Ziel für den Rückruf des Timers sollte values, nicht self sein:

let timer = NSTimer(fireDate: NSDate(), interval: 5, target: self.values, selector: #selector(VariClass.updateUILoop), userInfo: nil, repeats: true) 
+0

I „Verwendung von ungelösten Kennung – nyitguy

+0

@nyitguy 'updateUILoop' erhalten Bitte versuchen Sie den aktualisierten Selektor. – dasblinkenlight

+0

Ich bekomme diesen Fehler. "Argument von '#selector' bezieht sich auf eine Methode, die Objective-C nicht ausgesetzt ist." – nyitguy