该类不符合Swift中的'CBPeripheralManagerDelegate'

Cha*_*Lin 2 cocoa cbperipheral swift

我正在尝试在Swift中构建iBeacon发射器,但我无法让我的班级采用该CBPeripheralManagerDelegate协议。

在Objective-C中,此协议是初始化PeripheralManager对象所必需的,但是在Swift中,我将得到以下错误:

class MyBeacon: CBPeripheralManagerDelegate {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

给出错误:

“ MyBeacon”不符合“ CBPeripheralManagerDelegate”

由于我的班级未采用该协议,因此当我尝试使用自动完成初始化PeripheralManager时也出现错误

self.peripheralManager = CBPeripheralManager(delegate: self, queue: queue)
Run Code Online (Sandbox Code Playgroud)

给出错误:

找不到接受提供的参数的'init'的重载

谁能给我一些启示?

cod*_*ter 5

您必须实现此方法,因为此方法不是可选的,如果您确认,则必须实现 CBPeripheralManagerDelegate

func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {

}
Run Code Online (Sandbox Code Playgroud)

在课堂上写这个错误会消失

参考文档

CBPeripheralManagerDelegate协议的委托必须采用CBPeripheralManagerDelegate协议,该协议由许多可选方法和一个必需方法组成。当外围设备管理器的状态更新时,将调用该协议的必需方法,该方法指示外围设备管理器是否可用。