04.基础控件Swift版
目录介绍
- 01.基础控件学习
- 02.UI更新注意点
01.基础控件学习
02.UI更新注意点
比如,在网络请求后,需要将网络数据显示在UI上,出现这种问题:
self.textView.text = dataString;
报错日志如下:
Main Thread Checker: UI API called on a background thread: -[UITextView setText:]
遇到问题分析:当您在后台线程上调用UI API时,可能会导致应用程序崩溃或出现不可预测的行为。这是因为UI操作必须在主线程上执行。
解决办法是:可以使用GCD(Grand Central Dispatch)或OperationQueue将UI操作分派到主线程上。以下是一些示例代码:
使用GCD(Grand Central Dispatch):
DispatchQueue.main.async {
self.textView.text = dataString;
}
使用OperationQueue:
OperationQueue.main.addOperation {
self.textView.text = dataString;
}
使用DispatchQueue.main.async或OperationQueue.main.addOperation将UI操作封装在闭包中,并将其分派到主线程上执行。
请注意,在处理后台任务时,确保将UI操作放在适当的位置,以避免在后台线程上执行。