【发布时间】:2015-07-13 06:06:35
【问题描述】:
当我按下一个按钮时,我会启动一个计算循环,并且需要能够在主视图进行时更新它。由于这是一个后台线程,因此在调用完成之前屏幕不会更新。我如何在 Swift 中实现这一点?这是我当前的简化方法,但不起作用。
@IBAction func calculatePower(sender: AnyObject) {
for day in 1...365 {
dispatch_async(dispatch_get_main_queue()) {
self.dayLabel.text = "\(day)"
}
}
}
我通常会在循环中添加一些 0,否则它会从 1 到 365 完成太快。
在 Cocoa 中,我会使用如下语句:
[self performSelectorOnMainThread:@selector(updateDisplayEnergySunEquator:) withObject:[NSNumber numberWithDouble:distanceFromSun] waitUntilDone:YES];
有什么想法吗?
【问题讨论】:
-
我看过那个帖子 - 我会再看一遍 - 谢谢。
标签: swift grand-central-dispatch dispatch