是否支持多个CBCentralManager对象实例?

时间:2015-08-26 08:16:26

标签: ios

是否支持多个CBCentralManager实例?我可以在我的应用程序中的两个不同的viewcontrollers中创建两个CBCentralManager实例,并且都连接到同一个外围设备。

正如提到的问题(Multiple CBCentralManager instances?),有一些Apple邮件列表声明它不受支持,但我也发现"注意:因为应用程序可以有多个CBCentralManager实例和CBPeripheralManager对象,确保每个恢复标识符都是唯一的,以便系统可以正确区分一个中心(或外围)管理器对象与另一个中心(#34;在CoreBluetooth编程指南中。

我不知道在哪种情况下我应该创建多个CBCentralManager对象实例。希望你能帮助我,谢谢。

2 个答案:

答案 0 :(得分:1)

官方回答:

支持多个CBCentralManager实例。但是,您不能有多个实例连接到同一个外围设备。

您可以将CBCentralManager视为视图控制器。您可以让一个视图控制器管理多个视图,但是您不能让一个视图由多个视图控制器管理(或者如果您这样做,则没有意义)

答案 1 :(得分:1)

根据: https://forums.developer.apple.com/thread/20810 您可以在一个应用程序中拥有多个CBCentralManager实例。

可以在CBCentralManager实例之间共享CBPeripheral实例吗?

您可以共享属性数据。如果您询问CBPeripheral对象,则不能。当中央管理器连接到外围设备时,将创建一个消息链接,并且来自外围设备的任何事件都将路由到该特定中心。中央管理员可以为同一个外设创建自己的CPBeripheral实例,如果两者都需要接收相同的事件(上面阅读并确定这是必要的还是个好主意),他们将需要单独连接。