如何查找iOS NotificationCenter addObserver中更改的设置

时间:2018-06-06 07:27:53

标签: ios swift

我在iOS App中使用settings.bundle中的一些设置。我想监控这些设置的变化。我已经知道我可以使用NotificationCenter.default.addObserver(self, selector: #selector(onSettingsChanged), name: UserDefaults.didChangeNotification, object: nil)来完成此操作。

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

1 个答案:

答案 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)