【发布时间】:2018-12-13 08:21:42
【问题描述】:
我知道我们在更新 UI 时必须调用主线程。 但我无法解释我的队友为什么我们必须这样做,以及为什么 Swift 不自动这样做。
他们曾经这样调用 self.present():
self.present(alert, animated: true)
但我知道你应该这样称呼它:
DispatchQueue.main.async {
self.present(alert, animated: true)
}
我实际上想确保始终在主线程上调用该方法,但我不知道如何...另一个问题是:为什么我必须确保在主线程上调用此方法并且不是斯威夫特?当有人调用此方法时,总会有 UI 更新。
@available(iOS 5.0, *)
open func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil)
【问题讨论】:
-
But I know you should call it this way不,你不应该。仅当当前线程是后台线程时,您才应该这样做。如果真的有这个问题,我无法理解。 -
要回答为什么,请查看:stackoverflow.com/questions/31820336/…