首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBPeripheral径迹笔录

CBPeripheral径迹笔录
EN

Stack Overflow用户
提问于 2016-01-11 08:03:15
回答 1查看 84关注 0票数 0

从数据库中,我检索数据记录,然后将每条记录写入BLE设备的CBCharacteristic。写实现,

代码语言:javascript
复制
for service in self.connectedPeripheral!.services! {

   for characteristic in service.characteristics! {

       if characteristic.UUID.UUIDString == "1111" {

         self.connectedPeripheral!.writeValue(dataRecord, forCharacteristic: characteristic, type: .WithResponse)

       }
   }
}

现在CBPeripheraldidWriteValueForCharacteristic方法正在被nil NSError调用,所以写是成功的,但是我们如何跟踪哪些数据记录被写入到BLE设备中,因为我需要从数据库中删除这条成功写入的记录。在CBCharacteristic文档中,当我们开始对BLE进行写操作时,我找不到任何可以设置为数据库record_id的属性,其中大多数都是只读的。

代码语言:javascript
复制
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

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-11 08:38:36

在获得peripheral:didWriteValueForCharacteristic:error方法中的响应后,必须调用此方法外围readValueForCharacteristic:characteristic

这样,您将在peripheral:didUpdateValueForCharacteristic:error:中得到回调,在这里,您可以检查您的特性的值,如果它成功地写入到您的特性中,就可以删除记录。

代码语言:javascript
复制
-(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);
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34716641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档