Ios 可编程通信写入值;
我正在编写我的第一个IOS应用程序,与Bluegiga BLE芯片进行通信。我需要读写值。我遇到的问题是,我无法在第一次运行程序时写入值。我没有得到任何错误。它显示作为当前值写入的最后一个值。当我重新运行程序时,正确的值会正确更新。这耽误了我的计划。任何建议都会大有帮助。我正在使用以下代码段Ios 可编程通信写入值;,ios,bluetooth-lowenergy,core-bluetooth,Ios,Bluetooth Lowenergy,Core Bluetooth,我正在编写我的第一个IOS应用程序,与Bluegiga BLE芯片进行通信。我需要读写值。我遇到的问题是,我无法在第一次运行程序时写入值。我没有得到任何错误。它显示作为当前值写入的最后一个值。当我重新运行程序时,正确的值会正确更新。这耽误了我的计划。任何建议都会大有帮助。我正在使用以下代码段 CBPeripheral *servicePeripheral; NSData *readIndex; CBCharacteristic *readIdxCha
CBPeripheral *servicePeripheral;
NSData *readIndex;
CBCharacteristic *readIdxCharacteristic;
[servicePeripheral writeValue:readIndex forCharacteristic:readIdxCharacteristic type:CBCharacteristicWriteWithResponse];
- (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
if ([characteristic isEqual:readIdxCharacteristic] ){
[peripheral readValueForCharacteristic:readIdxCharacteristic];
NSLog(@"Read Index Characteristic Written Check%@",characteristic.value);
}
}
您的问题是,在调用
readValueForCharacteristic
后,您立即访问特征值
,但核心蓝牙需要一些时间才能与外围设备联系,请求特征值,外围设备回复
如果你参考这篇文章,你会看到-
讨论
当调用此方法读取
特性,外围设备调用
外围设备:didUpdateValueForCharacteristic:错误:its的方法
委托对象。如果特征值已成功确定
检索时,可以通过特征值访问它
财产
因此,您需要访问
didUpdateValueForCharacteristic:
cbperipal
delegate方法中的characteristic.value
,您是否在收到didConnectPeripal:
回调后写入该值,该回调表示您已完全连接并可以继续?在它准备好之前,你可能正在写。是的,我正在使用DIDC。3.谢谢你的回复。。这很有帮助