Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios peripheral:didUpdateValueForCharacteristic:error:如果CBCharacteristic';s正在通知是吗?_Ios_Core Bluetooth_Cbperipheral - Fatal编程技术网

Ios peripheral:didUpdateValueForCharacteristic:error:如果CBCharacteristic';s正在通知是吗?

Ios peripheral:didUpdateValueForCharacteristic:error:如果CBCharacteristic';s正在通知是吗?,ios,core-bluetooth,cbperipheral,Ios,Core Bluetooth,Cbperipheral,是否曾经出现过这样的情况,即当特征的isNotifying属性设置为YES时,CBPeripheralDelegate的外围设备:didUpdateValueForCharacteristic:error:将传回一个错误 显然,在发送显式读取请求的情况下,这是有意义的,但是如果外围设备的特征是通知中央设备,并且中央设备成功接收到该通知,则似乎不可能出现错误 该方法的文档没有对此添加任何细节。查看可能的most似乎不适用。我能看到的可能(如果不可能)是- CBATTErrorUnlikelyEr

是否曾经出现过这样的情况,即当特征的
isNotifying
属性设置为
YES
时,
CBPeripheralDelegate
外围设备:didUpdateValueForCharacteristic:error:
将传回一个错误

显然,在发送显式读取请求的情况下,这是有意义的,但是如果外围设备的特征是通知中央设备,并且中央设备成功接收到该通知,则似乎不可能出现错误

该方法的文档没有对此添加任何细节。

查看可能的most似乎不适用。我能看到的可能(如果不可能)是-

  • CBATTErrorUnlikelyError
ATT请求遇到不太可能的错误,因此无法完成

这似乎是一种总括性的“出了问题”和

  • CBATTErrorInsufficientResources
资源不足,无法完成ATT请求


至少,您应该检查非nil错误,在这种情况下不处理更新。我认为,在大多数情况下,如果向该方法报告错误,您可能会断开连接。

谢谢,检查错误代码是个好主意。嗯,如果设置了
isNotifying
,则不会发出明确的请求。
CBATTError
描述似乎暗示处理ATT请求时出现问题,在本例中没有请求。
CBError
s似乎也不适合此上下文。根据文档,错误描述来自蓝牙规范。我假设(这只是一个假设)“请求”是一个“操作”-notify操作是一个隐式请求,在核心蓝牙中可能存在接收更新的条件,并且在处理更新时出现错误-逻辑上要做的事情是通过此方法通知代理。如果看不到苹果的代码,就不可能说出一种或另一种方式,但防御性编程说,你应该检查一个错误,似乎如果操作有错误,那么它只会默默地失败或在内部重试读取。CBPeripal无法处理该错误,因为它从未发出明确的请求。但你可以说,你能做的最好的事情就是防御性地编写程序,因为我们不知道苹果的实施情况。谢谢