当使用CoreBluetooth框架访问低功耗蓝牙设备时,CBCentralManager http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBCentralManager_Class/translated_content/CBCentralManager.html返回一个CBPeripheral http://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CBPeripheral_Class/translated_content/CBPeripheral.html对于外围设备。
外围设备上有多种服务可用,我想将处理不同服务的特征值更新的代码拆分为多个类。因此,我需要附加多个id<CBPeripheralDelegate>
代表到外围设备。但是,这是不可能的,因为仅支持一名委托。
-
有没有办法获得多个CBPeripheral
同一外设的实例?
如果多个应用程序可能访问同一个外设,它们是否会收到不同的信息?CBPeripheral
实例?如果是,他们是否会看到其他应用程序的更新? (假设,应用程序 A 向特征写入一个值,应用程序 B 的委托是否也会收到 [-peripheral:didWriteValueForCharacteristic:error:] 消息?)
是否有任何优雅的方法来支持将事件处理代码拆分为多个类?
The answer https://stackoverflow.com/a/18906146/774 for CoreBluetooth:如何为许多特性(30 - 40)设计代码? https://stackoverflow.com/questions/18897304/corebluetooth-how-to-design-code-for-many-characteristics-30-40有一些设计技巧可能会有所帮助。简而言之,创建一个中介类,它可以是CBPeripheralDelegate
并支持多个特征类注册他们想要的任何特征。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)