首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增量NSTimer

增量NSTimer
EN

Stack Overflow用户
提问于 2011-03-19 22:34:41
回答 2查看 651关注 0票数 0

我的应用程序中有这样的方法:

代码语言:javascript
复制
- (void)initializeTimer{
    self.myTimer = [NSTimer scheduledTimerWithTimeInterval:theInterval target:self 
                               selector:@selector(move:) userInfo:nil repeats:YES];
}

我注意到,如果我改变时间间隔,计时器仍然使用旧值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 22:41:40

一旦创建了计时器,您就无法更改时间间隔。看看苹果网站上的NSTimer文档。您必须使计时器无效并释放计时器,然后使用新的时间间隔创建一个新计时器。

票数 3
EN

Stack Overflow用户

发布于 2011-03-20 07:17:45

我注意到,如果我改变时间间隔,计时器仍然使用旧值。

这是因为在C中调用函数和在Objective-C中发送消息是按值传递的,而不是按名称传递的。您不会传递theInterval变量;而是传递当时该变量中的值。该方法只接收该值;它不知道您可能从何处传递了该值。在theInterval变量或任何其他存储中放置一个不同的值对计时器没有任何影响,因为计时器不知道或不关心该变量或其外部的任何其他内容。

更改计时器时间间隔的唯一方法是向它发送一条setTimeInterval:消息,正如Marc W在他的回答中所说的那样,NSTimer对象不会响应这样的消息。因此,无法更改现有计时器的时间间隔。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5362729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档