如何查找 iOS 通知中心 addObserver 中更改的设置



我在iOS应用程序中使用settings.bundle中的一些设置。我想监视这些设置的更改。我已经知道我可以通过使用NotificationCenter.default.addObserver(self, selector: #selector(onSettingsChanged), name: UserDefaults.didChangeNotification, object: nil)来做到这一点。

但是,这仅通知我设置已更改,但不会告诉我是哪一个?有没有办法仅为特定设置注册观察者,或者将更改的设置作为参数提供给观察者?

可以传递包含已更改设置的对象。

例如。

var settings = ["setting1": "changes"]

作为用户更改设置,您需要更新settings对象

settings["setting1"] = "something changed"

您可以在通知中传递settings对象。

// Post a notification to inform about settings
NotificationCenter.default.post(name: NSNotification.Name(rawValue: UserDefaults.didChangeNotification), object: nil, userInfo: settings) 

最新更新