objective-c - 在执行以下两行之间添加延迟

标签 objective-c delay execution

我需要在(相同)函数中的两行执行之间添加延迟。有什么好的选择吗?

注意:我不需要两个不同的函数来做这个,延迟一定不能影响其他函数的执行。

例如:

line 1: [executing first operation];

line 2: Delay                        /* I need to introduce delay here */

line 3: [executing second operation];

任何帮助都是可观的。提前谢谢...

最佳答案

您可以使用 gcd 来执行此操作,而无需创建其他方法

// ObjC

NSTimeInterval delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
  NSLog(@"Do some work");
});

// Swift

DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
    print("Do some work)
}

您仍然应该问自己“我真的需要添加延迟吗”,因为它通常会使代码复杂化并导致竞争条件

关于objective-c - 在执行以下两行之间添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335649/

相关文章:

iphone - 从企业链接安装 ios7 应用程序两次,但与 itunes 安装时工作正常

ios - NSString 到 NSURL 的转换删除了部分路径

delay - HTA 脚本的休眠例程

iphone - 为什么 EKEventEditViewController 需要大约 3 秒才能加载

java - 如何找出程序中给定用例实际执行了多少 Java 代码?

ios - 2.23 : Apps must follow the iOS Data Storage Guidelines or they will be rejected

objective-c - 在方法中,指针或实际对象是否作为参数传递?

Android AudioRecord 初始化延迟

java - 有什么方法可以监控 Java 应用程序的功能流程吗?

c - VMA和ELF段之间的关系