类不符合' CBPeripheralManagerDelegate'在斯威夫特

时间:2014-07-21 18:30:29

标签: cocoa swift cbperipheral

我试图在Swift中构建iBeacon发射器,但我不能让我的类采用CBPeripheralManagerDelegate协议。

Objective-C中需要此协议来初始化PeripheralManager对象,但在Swift中,我将收到以下错误:

class MyBeacon: CBPeripheralManagerDelegate {
    // ...
}

给出错误:

  

' MyBeacon'不符合' CBPeripheralManagerDelegate'

由于我的班级没有采用该协议,当我尝试使用自动完成初始化PeripheralManager时,我也收到错误

self.peripheralManager = CBPeripheralManager(delegate: self, queue: queue)

给出错误:

  

无法找到' init'接受提供的参数

任何人都可以请一些亮点吗?

1 个答案:

答案 0 :(得分:4)

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

,则必须实施
func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {

}

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

参考docs

  

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