我们看到的情况是没有回复地写数据:
peripheral.writeValue(data, forCharacteristic: characteristic, type: .WithoutResponse)
仍然收到回调:
func peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
错误是nil,char是我们刚写入的那个(.WithoutResponse)。使用.WithResponse编写也可以获得回调。
什么可能导致这种行为?
iOS 9.3,iPhone 6s +,Xcode 7.3.1,iOS Central,Ti CC2640 BLE Stack 2.1.0外围设备
更新1:
特征上的属性是:.WriteWithoutResponse,.Write,.Notify(通过characteristic.properties验证)
答案 0 :(得分:0)
在iOS10.0和iOS10.1上就是我的情况。在2016年11月14日发布的iOS10.2 beta3上,情况恢复正常。
有关iOS10.0 10.1下CoreBluetooth状态机错误的更多详细信息,请访问:https://forums.developer.apple.com/thread/51960