Iphone 使用变量更改N定时器速度?
我有一个计时器,在viewDidLoad中启动,如下所示Iphone 使用变量更改N定时器速度?,iphone,cocoa-touch,Iphone,Cocoa Touch,我有一个计时器,在viewDidLoad中启动,如下所示 [NSTimer scheduledTimerWithTimeInterval:0.001f目标:自选择器:@selector(Dragon:)用户信息:无重复:是] 我希望能够使用变量更改间隔。然而,每当我试图将一个变量放置在0.001f的位置时,我都会得到错误。。。有什么想法吗?应用程序是否从后台进程返回?如果是这样,您可能需要重新设置计时器。你可能还想看看CADisplayLink:@King冰棒你可以借助这个方法 (无效)应用程
[NSTimer scheduledTimerWithTimeInterval:0.001f目标:自选择器:@selector(Dragon:)用户信息:无重复:是]代码>
我希望能够使用变量更改间隔。然而,每当我试图将一个变量放置在0.001f的位置时,我都会得到错误。。。有什么想法吗?应用程序是否从后台进程返回?如果是这样,您可能需要重新设置计时器。你可能还想看看CADisplayLink:@King冰棒你可以借助这个方法
- (无效)应用程序将进入前台:(UIApplication*)应用程序或
- (无效)应用IDBECOMEACTIVE:(UIApplication*)应用
你可以用这个方法修正关于计时器值的问题:)我有一个应用程序,它完全按照你的要求运行。我允许用户更改应用程序中计时器的速度,因此我需要将该速度设置为一个变量。我是这样做的:
我在主视图控制器类上创建一个计时器属性
我在主视图控制器类加载时初始化计时器
此后每次,我都会使计时器失效,并在值更改时重置它
我的主视图控制器.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]];
}
将float
变量传递到该方法中应该没有问题,您会得到什么错误?尝试0.01f,确切的错误是什么?哎哟,我使用的是int而不是float,我使用这个计时器来控制角色的移动速度。。。一旦我关闭应用程序并重新打开它,字符速度不会重置为默认值,我现在如何修复此问题?如何重置计时器?我想我需要在每次控制增量的浮点变化时重置计时器…保持对它的引用。然后,在适当的时候,使它失效,并用新变量重新创建一个计时器。。。很抱歉,我以前从未使用过计时器:o并且我在文档中找不到它。感谢您迄今为止提供的所有帮助,尽管在对象中使用了NSTimer变量。类似于NSTimer*aTimer=[NSTimer scheduledTimerWithTimeInterval:0.001f目标:自选择器:@selector(Dragon:)userInfo:nil repeats:YES]代码>(取自您的示例)。然后,您可以在需要时[aTimer invalidate]
。注意:nsrunlop将保留/释放计时器,因此在重用该变量之前,您可能需要将其置零。我有一个应用程序可以完全按照您的要求执行。我允许用户更改应用程序中计时器的速度,因此我需要将该速度设置为一个变量。让我去看看。等等。您可能想将方法名称更改为resetTimer
,但仍然是+1。我最初使用它,所以称之为setTimer。不过,我应该在那里签一张零计时器的支票。