我在iOS App中使用settings.bundle中的一些设置。我想监控这些设置的变化。我已经知道我可以使用NotificationCenter.default.addObserver(self, selector: #selector(onSettingsChanged), name: UserDefaults.didChangeNotification, object: nil)
来完成此操作。
但是,这只是告诉我设置已更改但不告诉我哪一个?有没有办法只为特定设置注册观察者,或者将更改后的设置作为参数提供给观察者?
答案 0 :(得分:1)
您可以传递包含已更改设置的对象。
例如。
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)