CBPeripheral track写入记录
CBPeripheral track written record
从数据库中,我正在检索数据记录,然后将每条记录写入 BLE 设备的 CBCharacteristic
。编写实现,
for service in self.connectedPeripheral!.services! {
for characteristic in service.characteristics! {
if characteristic.UUID.UUIDString == "1111" {
self.connectedPeripheral!.writeValue(dataRecord, forCharacteristic: characteristic, type: .WithResponse)
}
}
}
现在 CBPeripheral
的 didWriteValueForCharacteristic
方法被 nil
NSError
调用。所以写入成功。但是我们如何跟踪哪些数据记录被写入了 BLE 设备。因为我需要从数据库中删除这条写入成功的记录。在 CBCharacteristic
文档中,当我们开始对 BLE 进行写操作时,我找不到任何可以设置为数据库 record_id
的 属性 。其中大部分是只读的。
func peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
print("write characteristic: \(characteristic)")
// Need to track the record here So it can be removed from database
}
在 peripheral:didWriteValueForCharacteristic:error 方法中获得响应后,您必须调用此方法 [peripheral readValueForCharacteristic:characteristic]
这样你会在peripheral:didUpdateValueForCharacteristic:error:中得到回调
在这里你可以检查你的特征的值,如果它成功写入你的特征,则删除记录。
-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
if (error == nil) {
NSString *characteristicValue=[[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];
NSLog(@"value=%@",characteristicValue);
}
}
从数据库中,我正在检索数据记录,然后将每条记录写入 BLE 设备的 CBCharacteristic
。编写实现,
for service in self.connectedPeripheral!.services! {
for characteristic in service.characteristics! {
if characteristic.UUID.UUIDString == "1111" {
self.connectedPeripheral!.writeValue(dataRecord, forCharacteristic: characteristic, type: .WithResponse)
}
}
}
现在 CBPeripheral
的 didWriteValueForCharacteristic
方法被 nil
NSError
调用。所以写入成功。但是我们如何跟踪哪些数据记录被写入了 BLE 设备。因为我需要从数据库中删除这条写入成功的记录。在 CBCharacteristic
文档中,当我们开始对 BLE 进行写操作时,我找不到任何可以设置为数据库 record_id
的 属性 。其中大部分是只读的。
func peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
print("write characteristic: \(characteristic)")
// Need to track the record here So it can be removed from database
}
在 peripheral:didWriteValueForCharacteristic:error 方法中获得响应后,您必须调用此方法 [peripheral readValueForCharacteristic:characteristic]
这样你会在peripheral:didUpdateValueForCharacteristic:error:中得到回调 在这里你可以检查你的特征的值,如果它成功写入你的特征,则删除记录。
-(void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
if (error == nil) {
NSString *characteristicValue=[[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];
NSLog(@"value=%@",characteristicValue);
}
}