ios – 如何符合CBCentralManagerDelegate协议?

我正在尝试初始化中央管理器实例以创建具有蓝牙连接的应用程序.

这是我的代码的一部分:

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.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...