iOS 6使用已保存的外设UUID重置所有设置问题
我正在iOS上开发一个BLE应用程序,在与BLE附件建立连接后,我将其保存到CBUUID。这样,如果以后重新启动应用程序,并且BLE附件未打开或超出范围,我可以在应用程序的UI中将BLE附件显示为“未找到”。如果BLE附件随后打开或用户进入BLE范围,则应用程序将自动连接到BLE附件 我面临的问题是,在iOS 6中,如果用户执行设置->常规->重置->重置所有设置,则下次启动应用程序时,BLE附件将具有不同的CBUUID。这会导致我的应用程序和UI出现问题,因为此时将显示两个BLE附件:一个用于新UUID,另一个用于旧UUID(用户过去已连接到但已不存在) 应用程序是否有办法告知用户是否已执行“重置所有设置”,以便我可以清除已保存到首选项中的已连接可扩展附件(UUID)列表 或者其他关于如何应对这种情况的想法iOS 6使用已保存的外设UUID重置所有设置问题,ios,ios6,bluetooth-lowenergy,Ios,Ios6,Bluetooth Lowenergy,我正在iOS上开发一个BLE应用程序,在与BLE附件建立连接后,我将其保存到CBUUID。这样,如果以后重新启动应用程序,并且BLE附件未打开或超出范围,我可以在应用程序的UI中将BLE附件显示为“未找到”。如果BLE附件随后打开或用户进入BLE范围,则应用程序将自动连接到BLE附件 我面临的问题是,在iOS 6中,如果用户执行设置->常规->重置->重置所有设置,则下次启动应用程序时,BLE附件将具有不同的CBUUID。这会导致我的应用程序和UI出现问题,因为此时将显示两个BLE附件:一个用于
谢谢,将UUID存储在钥匙链中,而不是NSUSERDEFAULT中。当用户执行重置所有设置时,应用程序的钥匙链将被擦除,因此您的UUID将消失
如果您真的想对UUID使用NSUserDefaults,您还可以在密钥链中存储一些任意标志。在这种情况下,您只需在应用程序启动时检查钥匙链中是否存在该标志。如果没有,则丢弃UUID并创建一个新标志。为什么不在每次启动时都做一个压缩语句,检查UDID是否已更改,并且必须将当前的UDID保存在sqlite中,例如,应用程序在注意到某些更改时会进行检查,以实现所需的功能
希望这会有所帮助,就像adpalumbo建议的那样,使用钥匙链存储UDID
这个库很好用。至少,有人知道在哪个iOS版本中执行有关擦除UUID停止的“重置所有设置”行为吗?在iOS 7中,即使您“重置所有设置”,UUID也会得到维护。谢谢!我想这会管用的。我以前用过钥匙链,但这次没有考虑过:D.这个不行。当用户执行重置所有设置时,应用程序的钥匙链不会被擦除。所以我还是有同样的问题。还有其他想法吗?这可能与我如何使用钥匙链有关,我目前使用钥匙链就像存储密码一样。你能给我举一个使用钥匙链的例子吗?如果用户“重置所有设置”,钥匙链将被删除?