Première question débutant: Quelle est la différence entre un sélecteur et une méthode? Question de débutant (qui aurait pensé): Je dois boucler du code basé sur des variables d'instance et faire une pause entre les boucles jusqu'à ce que certaines conditions (bien sûr basées sur des variables d'instance) soient satisfaites. J'ai regardé dormir, j'ai regardé NSThread. Dans les deux discussions à travers ces options, beaucoup ont demandé pourquoi je n'utilise pas NSTimer, alors je suis là.Accès aux variables d'instance à partir du sélecteur NSTimer
Ok, donc c'est assez simple pour obtenir une méthode (sélecteur?) De tirer sur un calendrier. Le problème que j'ai, c'est que je ne sais pas comment voir les variables d'instance que j'ai configurées en dehors du timer depuis le code NSTimer. J'ai besoin de voir ces variables du code sélecteur de NSTimer comme I 1) mettra à jour leurs valeurs et 2) établira des étiquettes basées sur ces valeurs.
Voici un peu de code qui montre le concept ... finalement, j'aurais invalidé les temporisateurs basés sur myVariable, mais j'ai exclu cela pour la clarté du code.
MyClass *aMyClassInstance = [MyClass new];
[aMyClassInstance setMyVariable:0];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(doStuff) userInfo:nil repeats:YES];
[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(doSomeOtherStuff) userInfo:nil repeats:YES];
- (void) doStuff {
[aMyClassInstance setMyVariable:11]; // don't actually have access to set aMyClassInstance.myVariable
[self updateSomeUILabel:[NSNumber numberWithInt:aMyClassInstance.myVariable]]; // don't actually have access to aMyClassInstance.myVariable
}
- (void) doSomeOtherStuff {
[aMyClassInstance setMyVariable:22]; // don't actually have access to set aMyClassInstance.myVariable
[self updateSomeUILabel:[NSNumber numberWithInt:aMyClassInstance.myVariable]]; // don't actually have access to aMyClassInstance.myVariable
}
- (void) updateSomeUILabel:(NSNumber *)arg{
int value = [arg intValue];
someUILabel.text = [NSString stringWithFormat:@"myVariable = %d", value]; // Updates the UI with new instance variable values
}
Existe-t-il un moyen d'accéder aux variables d'instance de plusieurs instances? – Timbo
Oui. Il suffit de les placer dans un NSDictionary, de passer le dictionnaire sous userInfo et de les récupérer à volonté. –
Vous êtes trop bon, merci beaucoup pour votre aide :) – Timbo