2016-06-29 1 views
1

Problème lors de l'exécution de la fonction dans une classe différente en tant que sélecteur pour NStimer.Fonction d'accès nstimer rapide autre classe

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

Dans le délégué app j'ai

let values = VariClass() 

Dans le appdelegate je.

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

La fonction fonctionne parfaitement si je l'exécute manuellement.

getvalues.updateUILoop() 

Répondre

2

Vous voulez NSTimer invoquer func updateUILoop sur l'objet values, de sorte que la cible pour le rappel de minuterie doit être values, non self:

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

Je reçois « Utilisation d'identifiant sans solution 'updateUILoop' – nyitguy

+0

@nyitguy S'il vous plaît essayez le sélecteur mis à jour – dasblinkenlight

+0

Je reçois cette erreur. "L'argument de '#selector' se réfère à une méthode qui n'est pas exposée à Objective-C" – nyitguy