如何在 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 中如何正确订阅通知?