用委托初始化:表达式类型不明确,没有更多上下文

时间:2019-05-03 02:01:24

标签: ios swift core-bluetooth cbperipheralmanager

感觉很愚蠢,因为不久前我有一个非常相似的问题:

init CBCentralManager: Type of expression is ambiguous without more context

这次,我将CBPeripheralManager内的viewDidLoad实例化为iVar(尝试了'lazy'和'!'修饰符)。

我符合委托(在类型上和作为扩展名),但是当我尝试为委托参数分配self而不是nil时,仍然遇到相同的错误。 / p>

class vc: UIViewController {
    var peripheralManager: CBPeripheralManager!

    override func viewDidLoad() {
        super.viewDidLoad()            
        peripheralManager = CBPeripheralManager(delegate: self, queue: nil)
    }
}

extension vc: CBPeripheralDelegate { }

如何在此处获得自我作为实例,或者实际问题是什么?

1 个答案:

答案 0 :(得分:3)

您的扩展名符合错误的协议。

更改:

extension vc: CBPeripheralDelegate

收件人:

extension vc: CBPeripheralManagerDelegate

然后,您必须至少实现最少的必需协议方法。