我在Objective C中使用CoreBluetooth
来连接两个或更多iOS设备。我已经成功完成了这个过去,它也适用于这个项目,但我遇到了一个有趣且相当讨厌的问题。
当我发现外围设备时,我连接到它,然后订阅特征 - 此时,在功能中:
- (void) peripheralManager:(CBPeripheralManager *)peripheral central:(CBCentral *)central didSubscribeToCharacteristic:(CBCharacteristic *)thisCharacteristic
我得到了订阅特征的中心对象,但是,当我尝试获取其标识符时,我收到以下错误,导致应用程序崩溃:
-[CBCentral identifier]: unrecognized selector sent to instance 0x20073dc0
有趣的是,只有当中央运行iOS 7时才会出现此问题,iOS 6没有问题,标识符包含正确的值。
我还想提一下,UUID deprecated参数也会为iOS7返回正确的值。
有人有想法吗?我该如何解决这个问题?任何帮助表示赞赏!
答案 0 :(得分:1)
您报告的错误应该在iOS 6设备中发生,因为此属性不应在其中可用。关于UUID,没有理由不返回正确的值。它已被弃用但仍然有效,因此理想情况下,您应该为iOS 7+设备调用“identifier”,为iOS 5-6设备调用UUID。