init с делегатом: тип выражения неоднозначен без дополнительного контекста - PullRequest
0 голосов
/ 03 мая 2019

Чувствую себя довольно глупо, потому что у меня был очень похожий вопрос не так давно:

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 { }

Как я могу получить себя в качестве примера здесь, или как там в действительности?

1 Ответ

3 голосов
/ 03 мая 2019

Ваше расширение соответствует неправильному протоколу.

Изменение:

extension vc: CBPeripheralDelegate

до:

extension vc: CBPeripheralManagerDelegate

И тогда вы должны реализовать хотя бы минимально требуемые методы протокола.

...