如何在 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