我在尝试从外设获取蓝牙RSSI信号强度的IOS快速应用程序中遇到麻烦。我一直在尝试使用readRSSI()(请参见下面的代码)返回一个Future,但是到目前为止,我无法将该Future映射到另一个可用的变量中,例如Int或String。我是Swift的新手,所以不确定我是否缺少异步步骤或其他步骤。我习惯于在R,python,JS中工作,在围绕语法的问题上遇到了一些挑战。任何帮助是极大的赞赏。
我试过切换从扩展内提取内容到ViewController的多种方法,而没有运气。无论我如何尝试传递Future类型值,我都会在类型不匹配上遇到错误。
let strengthCharacteristic = self.peripheral.readRSSI()
let thisRet = self.strengthChar.map({ avar in
return avar
})
self.strengthLabel.text = String(thisRet ?? 0)
适用于readRSSI()方法的Apple文档:
在iOS和tvOS上,当您调用此方法以在连接到中央管理器时检索外围设备的RSSI时,外围设备将调用其委托对象的外围设备:didReadRSSI:error:方法,该方法包括RSSI值作为参数。
为了从外围设备读取RSSI,请在外围设备的委托对象中实现外围设备:didReadRSSI:error:。当您调用外围对象的readRSSI()方法时,将触发此方法。您可以在此方法中直接检索RSSI值作为输入参数。不要忘记将委托分配给外围对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句