Avatar ·

如何在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中正确实现?最好附上代码示例,让我确切理解其工作原理。提前感谢!