Iphone 更改计时器的时间间隔

Iphone 更改计时器的时间间隔,iphone,xcode,timer,nstimer,nstimeinterval,Iphone,Xcode,Timer,Nstimer,Nstimeinterval,我的问题是: 例如,在ViewDidLoad中,是否可以在10秒后增加scheduledTimerWithTimeInterval:2,例如“3”。 例如,由此: [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES]; 为此: [NSTimer scheduledTimerWithTimeInterval:3 targe

我的问题是: 例如,在ViewDidLoad中,是否可以在10秒后增加
scheduledTimerWithTimeInterval:2
,例如“3”。 例如,由此:

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

[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES];
多谢各位
对不起,我的英语是法语:/

请使用
setFireDate:
重新安排计时器。您需要跟踪ivar中的计时器。例如:

@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

使用
setFireDate:
重新安排计时器。您需要跟踪ivar中的计时器。例如:

@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

按如下方式递归重新安排计时器:

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];
}
========

或者根据

通过以下方式使其无效:

[myTimer invalidate];
然后用新的时间创建一个新的。您可能还需要先将其设置为零

myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value 
                                           target:self 
                                         selector:@selector(myMethod) 
                                         userInfo:nil 
                                          repeats:YES];

按如下方式递归重新安排计时器:

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];
}
========

或者根据

通过以下方式使其无效:

[myTimer invalidate];
然后用新的时间创建一个新的。您可能还需要先将其设置为零

myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value 
                                           target:self 
                                         selector:@selector(myMethod) 
                                         userInfo:nil 
                                          repeats:YES];

很抱歉,我不太明白hos如何使用setFireDate或如何在ivar中跟踪计时器。您能解释更多吗?:)很抱歉,我不太明白hos如何使用setFireDate或如何在ivar中跟踪计时器。您能解释更多吗?:)