【问题标题】:iPhone - NSTimer and only calling a function a minimum of n seconds after function last runiPhone - NSTimer 并且仅在函数上次运行后至少 n 秒调用函数
【发布时间】:2011-06-17 01:21:31
【问题描述】:

只是一个简单的问题。 我有一个以 5 秒为周期多次调用的函数。有没有办法合并一个 NSTimer 以便在函数调用之间有一个暂停(即,在计时器达到某个限制之前无法调用该函数)? 任何和所有的建议都表示赞赏!

亚历克斯

【问题讨论】:

    标签: iphone nstimer function-calls nstimeinterval


    【解决方案1】:

    如果您不希望某个方法在被调用后的某个时间段内被调用,您可以这样做,

    - (void)methodThatDoesStuff {
        static NSDate * lastCalled = nil;
        if ( [[NSDate date] timeIntervalSinceDate:lastCalled] < 5 ) {
            NSLog(@"Call Blocked");
            return;
        }
    
        NSLog(@"Called");
    
        [lastCalled release];
        lastCalled = [[NSDate date] retain];
    }
    

    这将在方法成功运行后阻塞所有方法调用 5 秒。

    【讨论】:

    • 这仍然不起作用,因为我正在使用 NSTimer 分析加速度计的值,它仍然每隔几秒运行一次。
    • 误读了您的问题。假设您想在一段时间内阻止方法调用,您可以按照更新答案中的指示进行操作。
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多