Xcode 11.5显示不正确的线程

问题描述

最近,我将当前的代码库从Swift 4.2(Xcode-10.3)迁移到了Swift 5(Xcode-11.5)。

在测试时,我在 tableView 数据源上放置了一个断点,并发现当前(Xcode-11.5)在该断点上显示后台线程。由于无法在后台线程上运行UIKit,这对我来说是个警报。查看附件

table view datasource

enter image description here

除非另有说明,否则仅从应用程序的主线程或主调度队列中使用UIKit类。此限制尤其适用于从UIResponder派生的类,或涉及以任何方式操纵应用程序用户界面的类。

  1. 如何解决此问题?
  2. 我的代码有问题吗?

解决方法

您必须添加一些更多信息,例如在何处以及如何初始化视图控制器和表视图。

您是否通过编程方式设置了表格视图的delegatedataSource?如果是这样,请在DispatchQueue.main.async{}块内尝试。

如果不是这种情况,请使用DispatchQueue的cellForRow属性检查它是否是isMainThread中的主线程。并检查您在哪里初始化tableView。

在其他情况下,可以在后台线程内调用整个View Controller。还要检查。