Avatar ·

如何在 Swift 中正确使用 NSNotificationCenter 的 addObserver?

大家好!我是 Swift 新手,正在尝试理解通知机制。我需要当应用中的设置发生变化时(例如语言切换),所有活跃的屏幕都能得知这一变化。我听说可以使用 `NSNotificationCenter`,但在使用时遇到了问题。 以下是我的代码: ```swift // 发送通知 NSNotificationCenter.defaultCenter().postNotificationName("LanguageChanged", object: nil) // 订阅通知(在 viewDidLoad 中) NSNotificationCenter.defaultCenter().addObserver(self, selector: "languageChanged:", name: "LanguageChanged", object: nil) // 处理函数 func languageChanged(notification: NSNotification) { print("Language changed!") } ``` 但 Xcode 给出了警告:`'addObserver:selector:name:object:' is deprecated`。我还注意到,如果不在 `deinit` 中移除观察者,应用有时会崩溃。 请告诉我: 1. 在现代 Swift 中如何正确订阅通知?