У меня есть два проекта. Один действует как центральный, другой как периферийный. Центральный сервер подключился к периферийному, затем центральный вызывает метод readValueForCharacteristic
. Не сразу, а примерно через 5-10 секунд периферия вызывает метод делегата - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadRequest:(CBATTRequest *)request
. Почему есть задержка? Как устранить задержку? Какие-нибудь мысли? Уже почти неделю пытаюсь. Ценю каждую помощь, спасибо
центральный
- (void)sendBtnClick:(id)sender
{
USCPeerBtn *btn = (USCPeerBtn *)sender;
CBPeripheral *peripheral = btn.connectedPeripheral;
if (!peripheral) {
return;
}
[self.charachterMDict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
if (key == peripheral) {
[(CBPeripheral *)key readValueForCharacteristic:(CBCharacteristic *)obj]; // read
*stop = YES;
}
}];
}
периферический
// CBPeripheralManagerDelegate
- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadRequest:(CBATTRequest *)request
{
NSLog(@"didReceiveReadRequest");
}
enumerateKeysAndObjectsUsingBlock
, когда можно просто сказатьCBCharacteristic *char=(CBCharacteristic *)self.charachterMDict[peripheral];
? Предположительно, вы звонитеrespondToRequest:
, но не показали этого? - person Paulw11   schedule 11.11.2015respondToRequest:
- person alpine   schedule 11.11.2015