我知道我们在更新 UI 时必须调用主线程。但我无法解释我的队友为什么我们必须这样做,以及为什么 Swift 不自动这样做。
他们曾经像这样调用 self.present() :
self.present(alert, animated: true)
但我知道你应该这样称呼它:
DispatchQueue.main.async {
self.present(alert, animated: true)
}
我实际上想确保始终在主线程上调用该方法,但我不知道如何...另一个问题是:为什么我必须确保在主线程而不是 Swift 上调用此方法?当有人调用此方法时,总会有 UI 更新。
@available(iOS 5.0, *)
open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)