繁体   English   中英

核心蓝牙功能

[英]Core Bluetooth Function

因此过去几天一直在网上搜索,但似乎仍然找不到有效的解决方案。 我正在运行Core Bluetooth,正在尝试从Arduino获取数据。 这是代码:

//Reading Bluetooth Data
func peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic characteristic: CBCharacteristic, error: NSError?) {
    let data = characteristic.value
    if let str:String = String(data: data!, encoding: NSUTF8StringEncoding) {
        self.delegate?.serialDidReceiveString(str)
        print(str)
    }
} 

我可以毫无问题地使用print(str)看到传入的数据,但是我将如何将接收到的数据传输到另一个swift文件中,并最终将其显示在UILabel上? 每当我尝试在函数外使用str ,Xcode都会不断告诉“期望的声明”。 我对代表的尝试如下:

protocol BluetoothSerialDelegate {
    func serialDidReceiveString(message: String)
}
extension BluetoothSerialDelegate {
    func serialDidReceiveString(message: String) {}
}

在函数所在的类中定义此变量var delegate: BluetoothSerialDelegate! 虽然没有错误,但我打电话时

func serialDidReceiveString(message: String) {
        Label.text! = message
        print(message)
    }

在ViewController内部,我无法像从初始函数中调用数据那样看到数据。 可能是什么问题? 提前致谢!

在h文件中声明该字符串,以便您具有全局变量。 或者,您可以仅将其保存为用户默认值,这将使从其他文件访问变得很容易。

您有一名代表...为什么不使用它? 在您想要显示数据的类中,遵循您的委托,并实现委托方法serialDidReceiveString: 然后,当接收到数据时,将在另一个视图中调用委托方法,然后可以更新标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM