gpt4 book ai didi

swift3 - NotificationCenter 发布以更新主线程上的 UI 元素?

转载 作者:行者123 更新时间:2023-12-01 08:27:34 27 4
gpt4 key购买 nike

我的项目中有这段代码:

func viewDidLoad() {
super.viewDidLoad()

NotificationCenter.default.addObserver(
self,
selector: #selector(self.didUpdateHistory),
name: NSNotification.Name.init("didUpdateHistory"),
object: nil)
}

func didUpdateHistory() {
// Update some UI elements
}

现在我的问题是:如果我从项目中的某个类发布通知并且触发不是由 UI 元素引起的,我是否仍需要将代码包装在 didUpdateHistory 函数中使用 DispatchQueue.main.async { ... } 还是我应该包装 post 调用本身?

此外,在何处添加观察者以及从何处发布通知是否重要?

最佳答案

您只需包装 post 调用即可。

DispatchQueue.main.async {
NotificationCenter.default.post(name: "didUpdateHistory", object: nil, userInfo: nil)
}

阅读有关向特定线程传递通知的更多信息 https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Notifications/Articles/Threading.html

关于swift3 - NotificationCenter 发布以更新主线程上的 UI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42648496/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com