我有一个在viewDidLoad中启动的计时器,看起来像这样
[NSTimer scheduledTimerWithTimeInterval:0.001f target:self selector:@selector(Dragon:) userInfo:nil repeats:YES];
我希望能够使用变量更改我的Interval。但是,任何时候我尝试将变量放在0.001f的位置,我会得到错误......有什么想法吗?
答案 0 :(得分:2)
我有一个应用程序可以完全满足您的要求。我允许用户在应用程序中更改计时器的速度,因此我需要将该速度变为变量。我是这样做的:
我在主视图控制器类上创建了一个timer属性。
我在主视图控制器类加载时初始化定时器。
此后,我将计时器无效并在值更改时重置。
我的主视图控制器.m文件中的一些片段:
//How often to switch views (float)
#define kInterval [[NSUserDefaults standardUserDefaults] integerForKey:@"interval"]
- (void) viewDidAppear:(BOOL)animated{
[self setTimer];
}
- (void) setTimer{
[self.timer invalidate];
[self setTimer: [NSTimer scheduledTimerWithTimeInterval:kInterval target:self selector:@selector(timerFired) userInfo:nil repeats:YES]];
}
答案 1 :(得分:0)
应用程序是否从后台进程返回?如果是这样,您可能需要重新设置计时器。您可能还想查看CADisplayLink:http://developer.apple.com/library/ios/#documentation/QuartzCore/Reference/CADisplayLink_ClassRef/Reference/Reference.html%23//apple_ref/doc/uid/TP40009031
答案 2 :(得分:0)
@King Popsicle你可以借助这个方法
您可以修复此方法中有关计时器值的事项:)