gpt4 book ai didi

swift - 如何在主线程中同步运行多个方法?

转载 作者:行者123 更新时间:2023-11-30 11:17:42 27 4
gpt4 key购买 nike

我有一个很长的 CoreData 进程(GlobalData.shared.resetData 函数),大约需要 4 秒,我想显示一个加载指示器。

两个操作(核心数据处理和显示加载指示器)都必须在主队列中运行,

你知道为什么显示加载指示器总是发生在CoreData处理之后吗?

@IBAction func resetTapped(_ sender: UIButton) {
tableView.backgroundColor = .green
showLoading(loadingText: nil)
GlobalData.shared.resetData(completion: {
self.refreshGlobalData()
})
}

我添加了该行来更改表格背景颜色以进行测试。背景颜色在核心数据处理后总是会改变(GlobalData.shared.resetData函数)。

最佳答案

当您像这样更改背景颜色时,您正在更改“模型”,但直到下次主线程重绘时您才会看到结果,直到您的代码放弃对模型的控制时才会发生这种情况运行循环(完成运行)。您可以尝试 dispatch_async-ing Core Data 操作,这可能允许运行循环在开始操作之前进行绘制。但实际上,正如评论者所提到的,不要在主线程上做一些需要四秒钟的事情。

关于swift - 如何在主线程中同步运行多个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com