Вы получаете сообщение об ошибке, что ваш класс не соответствует NSObjectProtocol. Я столкнулся с аналогичной проблемой при использовании CBCentralManagerDelegate, который является основным API Bluetooth, предоставляемым Apple.

Появилась ошибка: «Невозможно объявить о соответствии« NSObjectProtocol »в Swift; Вместо этого «BLEHandler» должен наследовать «NSObject». Вы хотите добавить заглушки протокола?»

Хотя добавление и внедрение заглушек протокола может быть лучшим вариантом, вот решения, которые вы можете попробовать.

Рабочие решения

  1. Самый простой способ реализовать необходимые методы заглушки протокола — создать подкласс NSObject (проверьте второй код).
class BLEHandler : CBCentralManagerDelegate //Error popped
class BLEHandler : NSObject, CBCentralManagerDelegate  //Error resolved

2. Убедитесь, что вы создаете подкласс основного, а не его расширения.

extension BLEHandler : NSObject, CBCentralManagerDelegate // wont work

Спасибо за чтение, я был бы признателен за аплодисменты за эту историю и оставил свои комментарии ниже, если это было полезно для вас.