1

here is my question: Is it possible to increase the scheduledTimerWithTimeInterval:2 for example of "3" after 10 seconds in ViewDidLoad for example. E.g., from this:

[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES];

to this:

[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES];

thank you sorry for my english I french :/

yuji
  • 16,695
  • 4
  • 63
  • 64

2 Answers2

1

Reschedule the timer recursively like this:

float gap = 0.50;

[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];

-(void) onTimer {
    gap = gap + .05;
    [NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
}

========

Or according to How can I update my NSTimer as I change the value of the time interval

Invalidate it with:

[myTimer invalidate];

Then create a new one with the new time. You may have to set it to nil first as well.

myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value 
                                           target:self 
                                         selector:@selector(myMethod) 
                                         userInfo:nil 
                                          repeats:YES];
Community
  • 1
  • 1
starea
  • 341
  • 3
  • 4
0

Use setFireDate: to reschedule the timer. You'll need to keep track of the timer in an ivar. For example:

@property (nonatomic, readwrite, retain) NSTimer *timer;

@synthesize timer=timer_;

- (void)setTimer:(NSTimer *)aTimer {
  if (timer_ != aTimer) {
    [aTimer retain];
    [timer_ invalidate];
    [timer_ release];
    timer_ = aTimer;
  }

- (void)dealloc {
  [timer_ invalidate];
  [timer_ release];
}

...

self.timer = [NSTimer scheduledTimerWithTimeInterval:...];

...

self.timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:3]; // reschedule for 3 seconds from now
Rob Napier
  • 286,113
  • 34
  • 456
  • 610
  • sorry but I don't really understand hos to use setFireDate or how to keep track of timer in an ivar .can you explain more please ? :) – valentin gougeau Sep 27 '11 at 17:39