• Billet écrit dans : Mobile, iPhone 17.07.2009

    Salut,

    Les NSTimers sont bien cool et en général ça ne pose aucun souci à les utiliser. J’ai bien dit en général. J’ai eu un souci avec ce matin…vraiment étrange.

    Sur un projet, j’en utilise un pour déclencher une méthode dans XX secondes une fois seulement. Ça marche impeccable. Sur un nouveau projet, je réutilise le même mais en faisant varier un paramètre « repeats » à YES. Et bien sur, ça ne marchait plus.

    Voici un timer qui déclenche une méthode une seule fois :

    1
    2
    3
    4
    5
    6
    7
    8
    
    -(void)blabla
    {
    	[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(test:) userInfo:nil repeats:NO];
    }
    -(void)test:(NSTimer*)timer
    {
    	NSLog(@"je suis appelé 1 fois");
    }

    Un timer qui se déclenche une méthode en boucle, techniquement il faudrait juste dire « repeats:YES » mais ca n’a pas marché dans mon cas. Le timer n’était jamais « fired » :p (je m’essaie à l’anglais)

    1
    2
    3
    4
    5
    6
    7
    8
    
    -(void)blabla
    {
    	[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(test:) userInfo:nil repeats:YES];
    }
    -(void)test:(NSTimer*)timer
    {
    	NSLog(@"je suis appelé en boucle c'est la fête.");
    }

    Donc voici ce que j’ai utilisé pour que ça marche. J’ai forcé le démarrage du timer en boucle.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    -(void)blabla
    {
    	NSTimer * timer = [NSTimer timerWithTimeInterval: 1 target: self selector: @selector(test:) userInfo: nil repeats: YES];
     
    	[[NSRunLoop mainRunLoop] addTimer: timer forMode: NSDefaultRunLoopMode];
    }
    -(void)test:(NSTimer*)timer
    {
    	NSLog(@"je suis appelé en boucle c'est la fête.");
    }

    Voilà voilà

    Billet écrit dans : Mobile, iPhone 17.07.2009

    Tags: ,

  • Réagissez a cet article ?!

    Attention: Les commentaires sont modérés et ne sont pas visibles automatiquement. Ce n'est pas la peine de re-soumettre votre commentaire.

    Add a comment on FriendFeed




CV Guillaume chave