ios - 如果 Swift 中有两个不同的类符合 CBCentralManagerDelegate 或 CBPeripheralManagerDelegate 协议,这是否有意义?
问题描述
我正在实现不同的服务 UUID,一个用于连接到其他 BLE 设备,另一个用于实现不同的用例,使用 iBeacon 协议中的一些功能。最后,我有两个不同的类来实现 Central 和 Peripheral Manager,它们都符合相应的委托。两个类都将从每个中央/外围管理器接收相应的事件吗?
解决方案
是的,一般来说,可以并允许有两个不同的 CLPeripheralManager 和 CLCentralManager 实例及其对应的委托。您将收到每个回调。
但是,这可能会给您的应用程序在处理两个实例共有的生命周期事件(例如蓝牙电源开/关)时增加不必要的复杂性。在设计类时要小心考虑到这一点。
通常,我构建的应用程序需要中央和外围功能以具有用于管理 CBPeripheralManager 和回调的单个类,以及用于管理 CBCentralManager 和回调的不同的单个类。但我总是避免拥有多个 CBPeripheralManager 实例或多个 CBCentralManager 实例,因此外围设备只有一个委托,中心只有一个委托。
推荐阅读
- c++ - 使用递归时如何保持值
- hive - NOT IN 子查询与 hiveql 重新调整 NullPointerException null
- javascript - 如何自动单击按钮(在加载时刺激鼠标单击)?
- python - 如果我们已经在 python 中导入了 tensorflow,为什么还要从 tensorflow 中导入 keras?
- php - 如何解析对象数组中的数据
- visual-c++ - 如何使用 MSVC lib.exe 向 qmake 提供精确的指令以构建 lib 文件,例如“lib.exe /DEF:mylib.def /OUT:mylib.lib
- java - 在 ubuntu 18.04 中安装 OpenJDK OpenJ9 后,我丢失了可执行文件
- excel - 从另一个子程序调用一个子程序
- c - ESP数据包的C AES-GCM解密不起作用
- android - 如何正确地从返回方法中释放位图?