作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个很长的 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/
有人可以向我澄清主线 DHT 规范中的声明吗? Upon inserting the first node into its routing table and when starting up th
我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。 我知道 Android 从大容量存储设备切换到 MTP 设备已经有一段时间了,并且找到了 source code for M
我是一名优秀的程序员,十分优秀!