-1

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

init CBCentralManager:表达式类型不明确,没有更多上下文

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

我已经符合委托(类型和扩展),但是当我尝试分配self而不是nil委托参数时,我仍然得到同样的错误。

class vc: UIViewController {
    var peripheralManager: CBPeripheralManager!

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

extension vc: CBPeripheralDelegate { }

我如何在这里获得 self 作为一个实例,或者实际问题是什么?

4

1 回答 1

3

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

改变:

extension vc: CBPeripheralDelegate

到:

extension vc: CBPeripheralManagerDelegate

然后您必须至少实现最低要求的协议方法。

于 2019-05-03T02:13:13.677 回答