我是swift的初学者,并尝试开发简单的程序,显示BLE的特征 . 我通过打印确认我捕获了目标特征的UUID
myCharacteristicUUID_1 : (
"Manufacturer Name String",
"Model Number String",
"Serial Number String",
"Hardware Revision String",
"Firmware Revision String",
"Software Revision String"
)
但是,在覆盖功能准备(对于segue:UIStoryboardSegue,发件人:任何?),我再次通过打印检查它,我看到数据已经消失如下;
myCharacteristicUUID_2 : (
)
我可以移交其他类型的值(例如字符串,文本等)但我无法处理从BLE捕获的数据 . 有人可以指出当我在segue中使用BLE数据时我必须做什么吗?以下是我的代码;
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor targetService: CBService, error: Error?) {
if error != nil {
print("Characteristic NOT found : \(error)")
}
let foundCharacteristics = targetService.characteristics
for c in foundCharacteristics! as [CBCharacteristic] {
myCharacteristicUUID.add(c.uuid)
}
print("myCharacteristicUUID_1 : \(myCharacteristicUUID)")
}
// prepare for segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "mySegue") {
print("myCharacteristicUUID_2 : \(myCharacteristicUUID)")
let mySecondViewController : SecondViewController = segue.destination as! SecondViewController
mySecondViewController.relayedFoundCharacteristicUUID = myCharacteristicUUID
}
}
1 回答
这就是为什么没有正确读取
myCharacterisitcUUID
的原因 . 请看performSegue
的地方 .