Avatar ·

如何在 Swift 3、4 和 5 中使用 dispatch_after 实现延迟执行?

你好!我是 Swift 新手,正在尝试将旧代码从 Objective-C 迁移过来,之前我用 dispatch_after 来实现延迟执行。以前我这样写: ```objective-c dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"过去了2秒"); }); ``` 但在 Swift 3 及以上版本中这不起作用。我尝试这样写: ```swift dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2.0 * Double(NSEC_PER_SEC))), DispatchQueue.main, { print("过去了2秒") }) ``` 但 Xcode 报错:"Use of unresolved identifier 'dispatch_after'"。我知道 GCD 变化很大,但找不到 Swift 3/4/5 的易懂示例。请解释如何正确实现2秒延迟并在主线程执行。我需要一个简单可用的示例,以便直接插入代码。提前感谢! <<>>

Swift 3+ 中延迟执行的正确方式

在 Swift 3 中 API