iOS 7 CBCentral标识符无法识别的选择器

时间:2013-12-24 06:12:31

标签: ios objective-c ios7 core-bluetooth

我在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返回正确的值。

有人有想法吗?我该如何解决这个问题?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

您报告的错误应该在iOS 6设备中发生,因为此属性不应在其中可用。关于UUID,没有理由不返回正确的值。它已被弃用但仍然有效,因此理想情况下,您应该为iOS 7+设备调用“identifier”,为iOS 5-6设备调用UUID。