Far*_*ris 6 bluetooth ios swift
我正在尝试初始化中央管理器实例以创建具有蓝牙连接的应用程序.
这是我的代码的一部分:
class ViewController: UIViewController, CBCentralManagerDelegate {
var myCentralManager = CBCentralManager(delegate: self, queue: nil) //error on this line
func centralManagerDidUpdateState(central: CBCentralManager!) {
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
"键入'ViewController - >() - > ViewController!' 不符合协议'CBCentralManagerDelegate'
协议所需的唯一方法是centralManagerDidUpdateState()我添加的,为什么我会收到错误?
错误消息有点欺骗性,使您远离实际问题。问题是您正在访问self存储属性的初始值设定项,您不能这样做。
一种解决方法是简单地声明属性而不对其进行初始化,然后将变量的赋值移动到某个地方,例如您的视图控制器的初始化程序,或您的视图控制器的生命周期方法之一,例如 viewDidLoad。
创建中央管理器时,中央管理器调用其委托对象的centralManagerDidUpdateState方法.因此,您必须实现此委托方法,以确保支持蓝牙低功耗并可使用中央设备.如下所示:
func centralManagerDidUpdateState(central: CBCentralManager!){
println("CentralManager is initialized")
switch central.state{
case CBCentralManagerState.Unauthorized:
println("The app is not authorized to use Bluetooth low energy.")
case CBCentralManagerState.PoweredOff:
println("Bluetooth is currently powered off.")
case CBCentralManagerState.PoweredOn:
println("Bluetooth is currently powered on and available to use.")
default:break
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5579 次 |
| 最近记录: |