理解NSUserDefaults和NSUserDefaultsDidChangeNotification

时间:2013-06-01 12:39:45

标签: ios notifications settings

有没有办法使用NSUserDefaultsDidChangeNotification我可以通知我对常规设备设置所做的更改?

我不确定这里提到的是什么设置。它是否仅涉及应用程序特定设置或整体设备设置。

我想要做的是:如果用户打开/关闭wifi或蓝牙或其他任何设置,我想要通知。我有可能使用NSUserDefaultsDidChangeNotification ??

来做到这一点

到目前为止,我能想到的是创建一个自定义通知,每次更改变量值时都会触发该通知。但是,在这种情况下,我将不得不继续轮询设置的值。

1 个答案:

答案 0 :(得分:0)

来自NSUserDefaults class reference

  

NSUserDefaults类为其提供编程接口   与默认系统交互。默认系统允许   应用程序以自定义其行为以匹配用户的首选项。   例如,您可以允许用户确定哪些单位   测量您的应用程序显示或文档的频率   自动保存。 应用程序通过分配来记录此类首选项   值为用户默认数据库中的一组参数。   参数被称为默认值,因为它们是常用的   确定应用程序在启动时的默认状态或其行为方式   默认情况下。

根据您要执行的操作,即监视wifi或蓝牙或其他设备设置,无法使用NSUserDefaults进行此操作。所以是的,你不能使用NSUserDefaultsDidChangeNotification。它更适用于您的特定应用的用户默认设置。

如何确定wifi:iPhone Wifi on or off?

对于蓝牙可用性,我认为您可以使用Core Bluetooth。对于其他设备设置,您需要逐个查找。