Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用变量更改N定时器速度?_Iphone_Cocoa Touch - Fatal编程技术网

Iphone 使用变量更改N定时器速度?

Iphone 使用变量更改N定时器速度?,iphone,cocoa-touch,Iphone,Cocoa Touch,我有一个计时器,在viewDidLoad中启动,如下所示 [NSTimer scheduledTimerWithTimeInterval:0.001f目标:自选择器:@selector(Dragon:)用户信息:无重复:是] 我希望能够使用变量更改间隔。然而,每当我试图将一个变量放置在0.001f的位置时,我都会得到错误。。。有什么想法吗?应用程序是否从后台进程返回?如果是这样,您可能需要重新设置计时器。你可能还想看看CADisplayLink:@King冰棒你可以借助这个方法 (无效)应用程

我有一个计时器,在viewDidLoad中启动,如下所示

[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。不过,我应该在那里签一张零计时器的支票。