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

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

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

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

官方答复:

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

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

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

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

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