我正在尝试初始化中央管理器实例以创建具有蓝牙连接的应用程序.
这是我的代码的一部分:
class ViewController: UIViewController,CBCentralManagerDelegate { var myCentralManager = CBCentralManager(delegate: self,queue: nil) //error on this line func centralManagerDidUpdateState(central: CBCentralManager!) { }
我收到一个错误:
“Type ‘ViewController -> () -> ViewController!’ does not conform to protocol ‘CBCentralManagerDelegate’
协议所需的唯一方法是我添加的centralManagerDidUpdateState(),为什么我会收到错误?
解决方法
错误消息有点欺骗,并指出您远离实际问题.问题是你在初始化器中为存储的属性访问self,你不能这样做.
一种解决方法是简单地声明属性而不初始化它,然后将赋值转移到某个位置,如视图控制器的初始化程序,或者视图控制器的生命周期方法之一,如viewDidLoad.