Question

J'ai un int qui définit l'objet objectAtIndex, qui le donne à la chaîne, qui l'affiche ensuite dans UILabel, CEPENDANT, lorsque je modifie le tableau (j'ajoute un mot dans ce cas) lorsque j'ai le UILabel à travers le tableau, il affiche uniquement les impairs. J'ai fait un NSLog et j'ai découvert qu'il passait chaque chose à la chaîne, mais le label n'affichait pas tout le monde, il le faisait seulement la première fois, alors je modifiais le tableau, et il n'était étrange que

modifier: le code:

- (void) stuff {
    NSArray *indivwords = [sentence componentsSeparatedByString:@" "];
    count = [indivwords count]; //count=int
    if (i < count) {
        NSString *chunk = [indivwords objectAtIndex:i];
        [word setText:chunk];

        NSLog(chunk);
        i++;
    } else {
        word.textColor = [UIColor greenColor];
        [word setText:@"DONE"];
    }
}

Tout cela est contrôlé par un NSTimer, ce qui le différencie en fonction d'une valeur de curseur. Aussi, je suis mis à 0 dans le IBAction

Le code IBAction:

word.textColor = [UIColor whiteColor];
[timer invalidate];
i = 0;

speedd = (1/speed.value)*60;



timer = [NSTimer scheduledTimerWithTimeInterval:(speedd) target:self selector:@selector(stuff) userInfo:nil repeats:YES];   

EDIT:

Je l'ai réparé! Ce que j’ai fait, c’est d’appeler cette personne une fois que j’ai atteint le compte

 -(void)stoptimer
{
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:(.01) target:self selector:@selector(empty) userInfo:nil repeats:YES];  
}

vide est juste un vide avec rien dedans, bien, tout ce que j'ai fait était d'ajouter un commentaire,

//don't look over here, nothing to see here, oh look at that

Quelqu'un peut le fermer s'il le souhaite

Était-ce utile?

La solution

Vous avez dit que l'intervalle de temps de votre NSTimer est contrôlé par un curseur. Peut-être démarrez-vous une nouvelle instance de minuterie chaque fois que vous modifiez la valeur du curseur. Ainsi, après une modification, deux compteurs seraient en cours d'exécution. Le premier met à jour l'étiquette et incrémente i . Le second vient juste après le premier et trouve la valeur de i incrémentée. Il affiche donc le bloc suivant au lieu de celui en cours.

Comptez le nombre d'instances de votre minuteur - NSLogez le minuteur dans le rappel du minuteur et comparez les résultats - il se peut que vous en tiriez plus d'un.

Autres conseils

Je suppose que vous avez deux actions différentes appelant cette méthode, alors que vous pensez qu'il devrait y en avoir une. Je mettrais un point d'arrêt là-dedans et verrais si cela s'arrête là où vous pensez qu'il le devrait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top