Ios 可编程通信写入值;

Ios 可编程通信写入值;,ios,bluetooth-lowenergy,core-bluetooth,Ios,Bluetooth Lowenergy,Core Bluetooth,我正在编写我的第一个IOS应用程序,与Bluegiga BLE芯片进行通信。我需要读写值。我遇到的问题是,我无法在第一次运行程序时写入值。我没有得到任何错误。它显示作为当前值写入的最后一个值。当我重新运行程序时,正确的值会正确更新。这耽误了我的计划。任何建议都会大有帮助。我正在使用以下代码段 CBPeripheral *servicePeripheral; NSData *readIndex; CBCharacteristic *readIdxCha

我正在编写我的第一个IOS应用程序,与Bluegiga BLE芯片进行通信。我需要读写值。我遇到的问题是,我无法在第一次运行程序时写入值。我没有得到任何错误。它显示作为当前值写入的最后一个值。当我重新运行程序时,正确的值会正确更新。这耽误了我的计划。任何建议都会大有帮助。我正在使用以下代码段

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.谢谢你的回复。。这很有帮助