如果Swift中有两个不同的类符合CBCentralManagerDelegate或CBPeripheralManagerDelegate协议有意义吗?
Does it make sense if there are two different classes that conform to the CBCentralManagerDelegate or CBPeripheralManagerDelegate protocol in Swift?
我正在实施不同的服务 UUID,一个用于连接到其他 BLE 设备,另一个用于实施不同的用例,使用 iBeacon 协议的一些功能。最后,我有两个不同的 类 正在实现 Central 和 Peripheral Manager,它们都符合相应的委托。 类 是否都会收到来自每个 Central/Peripheral 经理的相应事件?
是的,一般来说,可以并允许有两个不同的 CLPeripheralManager 和 CLCentralManager 实例及其相应的委托。您将收到每个回调。
但是,这可能会在您的应用处理两个实例共有的生命周期事件(例如蓝牙电源 on/off)时增加不必要的复杂性。在设计 classes 时要小心考虑这一点。
通常,我构建的应用程序需要中央和外围功能,以便有一个 class 用于管理 CBPeripheralManager 和回调,另一个 class 用于管理 CBCentralManager 和回调。但我总是避免有多个 CBPeripheralManager 实例或多个 CBCentralManager 实例,因此只有一个代表用于外围设备和一个代表中央设备。
我正在实施不同的服务 UUID,一个用于连接到其他 BLE 设备,另一个用于实施不同的用例,使用 iBeacon 协议的一些功能。最后,我有两个不同的 类 正在实现 Central 和 Peripheral Manager,它们都符合相应的委托。 类 是否都会收到来自每个 Central/Peripheral 经理的相应事件?
是的,一般来说,可以并允许有两个不同的 CLPeripheralManager 和 CLCentralManager 实例及其相应的委托。您将收到每个回调。
但是,这可能会在您的应用处理两个实例共有的生命周期事件(例如蓝牙电源 on/off)时增加不必要的复杂性。在设计 classes 时要小心考虑这一点。
通常,我构建的应用程序需要中央和外围功能,以便有一个 class 用于管理 CBPeripheralManager 和回调,另一个 class 用于管理 CBCentralManager 和回调。但我总是避免有多个 CBPeripheralManager 实例或多个 CBCentralManager 实例,因此只有一个代表用于外围设备和一个代表中央设备。