我的应用程序中有这个方法:
- (void)initializeTimer{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:theInterval target:self
selector:@selector(move:) userInfo:nil repeats:YES];
}
我注意到如果我更改时间间隔,计时器仍然是旧值。
答案 0 :(得分:3)
创建计时器后,您无法更改间隔。查看Apple网站上的NSTimer
文档。您必须使计时器无效并释放,然后使用新的间隔创建一个新计时器。
答案 1 :(得分:3)
我注意到如果我更改时间间隔,计时器仍然是旧值。
这是因为在C中调用函数并在Objective-C中发送消息是按值传递,而不是按名称传递。您没有传递theInterval
变量;您传递当时该变量中的值。该方法仅接收该值;它不知道你可能从哪里通过它。在theInterval
变量或任何其他存储中添加不同的值对计时器没有影响,因为计时器不知道或关心该变量或其他任何外部的其他内容。
您能够更改计时器间隔的唯一方法是向其发送setTimeInterval:
消息,正如Marc W在他的回答中所说,并且当文档将备份时,NSTimer对象不会响应这样的消息。因此,无法更改现有计时器的间隔。