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

Hen*_*y F 10 objective-c ios core-bluetooth bluetooth-lowenergy cbperipheral

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

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

Tom*_*voy 13

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

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

(哦,你说"在其他视图控制器中初始化它".那不应该是这样的.但也许你只是想存储CFUUIDRef?如果你这样做,你可以调用retrievePeripherals:(NSArray*)并将外围对象带回到任何地方你想要的.如果这就是你的意思......)