如何在Swift中正确使用dispatch_after延迟执行代码?
你好!我刚开始学习Swift,正在尝试理解Grand Central Dispatch。之前在Objective-C中,我经常使用dispatch_after来延迟执行代码,例如:
```objc
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"过去2秒");
});
```
但现在用Swift写代码时,我不确定如何正确重写这段代码。我试过类似这样的写法:
```swift
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue()) {
print("过去2秒")
}
```
但编译器报语法错误。我看到在Swift 3及以上版本中,GCD API发生了很多变化,旧的方式已经失效了。我需要延迟执行UI更新(例如显示alert或修改label)。请告诉我如何在现代Swift中正确实现?最好附上代码示例,让我确切理解其工作原理。提前感谢!