【问题标题】:Class does not conform to 'CBPeripheralManagerDelegate' in Swift类不符合 Swift 中的“CBPeripheralManagerDelegate”
【发布时间】:2014-09-12 09:02:42
【问题描述】:

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

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

class MyBeacon: CBPeripheralManagerDelegate {
    // ...
}

给出错误:

“MyBeacon”不符合“CBPeripheralManagerDelegate”

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

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

给出错误:

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

有人能解释一下吗?

【问题讨论】:

  • 协议的方法你实现了吗?
  • 我忘了放入 peripheralManagerDidUpdateState 函数。现在一切都很好:)

标签: cocoa swift cbperipheral


【解决方案1】:

你必须实现这个方法,因为这个方法不是可选的,如果你确认CBPeripheralManagerDelegate必须实现

func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {

}

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

参考docs

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

【讨论】:

  • 天哪,我错过了那部分...我什至在 Objective C 版本中都有它...谢谢!!!!!!!!!
猜你喜欢
  • 2021-02-23
  • 2022-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多