ios - 延长 dispatch_after 的调度时间

标签 ios nstimer

我在方法中有以下代码:

int64_t delayInSeconds = 2.0f;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);

dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
    // Do some stuff
}

如果在 delayInSeconds 启动之前调用该方法,我想将计时器再延长两秒。然后执行 block 。我怎样才能做到这一点?

最佳答案

那么我建议不要为此使用 gcd。相反,您可以尝试:

[self performSelector:@selector(anyMethod) withObject:nil afterDelay:yourDelay]

//Then if you need to cancel just do:

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(anyMethod) object:nil]

//And simply reschedule your timer here.

关于ios - 延长 dispatch_after 的调度时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183487/

相关文章:

ios - 背景后 NSTimer 滞后

objective-c - 检测 NSUndoManager 警报 View 何时可见

ios - 以毫秒为单位显示游戏时间 Xcode

ios - 应用程序进入后台时如何保留 NSTimer?

ios - 将多边形拟合在一起

ios - 与 Apple Watch 配对后,远程通知声音还能在 iPhone 上播放吗?

ios - 应用内购买的产品 ID 是否必须在每个 Apple ID 中具有全局唯一性(而不仅仅是每个应用程序的本地 ID)?

ios - MPMoviePlayerController 的初始和结束时间属性...具有破坏性?

ios - 从另一个类访问 IBOutlet

ios - 使用 CGPointmake 和 NSSTimer 的非常基本的动画?