У меня есть viewController, который загружает некоторые данные из базы данных SQLite. Это задерживает открытие viewController. Когда я делаю этот вызов в viewDidLoad, но в другом потоке, как этот, задержка все еще там.
DispatchQueue.global(qos: .background).async {
do {
self.title = try ContentDataManager.getTitle(type: self.navigationType, parentId: self.parentId, filter: self.filter)
DispatchQueue.main.async {
self.titleLabel.text = title
}
} catch let error {
print(error)
}
}
Это работает, когда я жду 1ns. Но я думаю, что этот подход очень подвержен ошибкам.
Почему этот код блокирует основной поток, когда он находится в другом потоке?