iPhone - NSTimer 并且仅在函数上次运行后至少 n 秒调用函数

发布于 2024-11-16 00:15:58 字数 122 浏览 8 评论 0原文

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

亚历克斯

just a quick question.
I have a function called multiple times with a 5 second period. Is there way to incorporate an NSTimer so that there is a pause between the function calls (ie so there is no way the function can be called before the timer has reached a certain limit)?
Any and all suggestions are appreciated!

Alex

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千纸鹤 2024-11-23 00:15:58

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

- (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 秒。

If you do not want a certain method to be invoked for a certain time period after it has been invoked, you can do this,

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

    NSLog(@"Called");

    [lastCalled release];
    lastCalled = [[NSDate date] retain];
}

This will block all method calls for 5 seconds after the method has been run successfully.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文