我知道在更新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)