gpt4 book ai didi

ios - NSNotificationCenter 作为整个应用程序的主要事件调度器

转载 作者:行者123 更新时间:2023-11-28 08:57:34 24 4
gpt4 key购买 nike

使用 NSNotificationCenter 作为应用内所有事件的唯一处理程序是否正确?

如果我像这样列出所有可能的事件是否可以:

override func viewDidLoad() {
super.viewDidLoad()

NSNotificationCenter.defaultCenter().addObserver(self, selector: "loginUser:", name: "userWillLogin", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showError:", name: "userLoginError", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "loadMainScreen:", name: "userDidLogin", object: nil)
// Is it ok if I put 10 or 20 more event listeners here?

}

或者这个功能的意图不同?我发现以这种方式使用事件监听器和处理程序很有吸引力,但不确定这是否是在性能和​​最佳实践方面跨应用程序传递事件和数据的推荐方式。

最佳答案

当仅使用通知时,您会发现自己很难调试发生故障的情况。通知使跟踪错误变得困难,因为并不总是很明显是什么流程。有些情况下您应该使用它们,但不要总是通过通知来使用它们 - 它的可读性较差。

最好的方法是使用 delegate pattern/blocks 来实现 1:1 关系和 NSNotificationCenter/KVO 对于 1:n 关系。

查看此链接:http://nshipster.com/nsnotification-and-nsnotificationcenter/

关于ios - NSNotificationCenter 作为整个应用程序的主要事件调度器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32699578/

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