如何存储CBPeripheral以便在其他视图中使用

我在视图控制器SViewController中设置了几个BLE连接,我需要存储外围设备以便在其他视图控制器中使用。 我已经尝试创建一个NSUserDefault对象并在那里存储外围设备,但我收到错误"Attempt to insert non-property value" ,它从未插入。 然后我尝试将其包装在NSData对象中并将其存储在NSUserDefaults中,但得到错误"-[CBConcretePeripheral encodeWithCoder:]: unrecognized selector sent"并且应用程序崩溃了。 这绝对没有用。 我也尝试将三个CBPeripheral变量全局化,但我遇到了很多问题。 (我对编程还很新)。 然后我以某种方式调查了它们,但是在这里读到它不会工作并且不浪费时间。

有谁知道如何存储CBPeripheral对象,以便我可以访问它并在其他视图控制器中初始化它?

创建一个实现所有CBCentralManagerDelegate方法的单例。 然后只需为该单例创建自己的委托方法,即可向viewControllers发送消息。 这样你就可以在任何课堂上轻松使用它。 至于存储CBPeripherals,您可以将它们放在单例内部包含的NSMutableArray中。

查看此链接,了解如何创建单例实例

(哦,你说“在其他视图控制器中初始化它”。那不应该是这种情况。但也许你只想存储CFUUIDRef ?如果你这样做,你可以调用retrievePeripherals:(NSArray*)并将周边物体带回任何你想要的地方。如果这就是你的意思……)