2

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

在 Objective-C 中需要这个协议来初始化 PeripheralManager 对象,但是在 Swift 中,我会得到以下错误:

class MyBeacon: CBPeripheralManagerDelegate {
    // ...
}

给出错误:

“MyBeacon”不符合“CBPeripheralManagerDelegate”

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

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

给出错误:

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

任何人都可以阐明一下吗?

4

1 回答 1

5

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

func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {

}

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

参考文档

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

于 2014-07-21T18:50:47.773 回答