我在CBPeripheralManager
的方法中遇到了问题。
- (BOOL)updateValue:(NSData *)value forCharacteristic:(CBMutableCharacteristic *)characteristic onSubscribedCentrals:(NSArray *)centrals
根据Apple
documentation
,如果可以发送更新,它将返回YES
,如果基础传输队列已满,则返回NO
。
我得到了NO
。我该如何解决这个问题?
答案 0 :(得分:1)
当输出队列已满时,您需要延迟发送响应。
工作人员队列计划。
解决此问题的最简单方法是创建一个worker queue,您可以在其中插入要发送的数据块,并创建一个调度程序块,用于获取项目并将其发送出去。当队列已满时,将当前块放回队列的头部,并在收到peripheralManagerIsReadyToUpdateSubscribers:
之后再次尝试发送。如果由于其他原因导致中心断开或连接中断,则应取消所有发送。