Как мне разобраться с «неоднозначной ссылкой на член '=='» в RxBluetoothKit? - PullRequest
0 голосов
/ 03 апреля 2020

При попытке поиска Bluetooth peripherals с использованием RxBluetoothKit я получаю error с именем

"Неоднозначная ссылка на член '==' с использованием этого кода:

func observeState() -> Observable<[BluetoothState]> {
    return manager.observeState()
           .startWith(manager.state)
           .do(onNext: { print("CHECK POWER", $0) })
           .filter{ $0 == .poweredOn }
           .take(1)
           .do(onNext:{
               print("?POWERED ON", $0)
           })
           .flatMap { _ in
               self.manager
                   .scanForPeripherals(withServices: nil)
                   .map { BlePeripheral(peripheral: $0.peripheral) }
                   .do(onNext: {
                       print($0.peripheral.name)
                       print($0.peripheral.identifier)
                       print($0.peripheral.connected)
                    })
           }
    }

Ошибка на .filter{ $0 == .poweredOn }

Если я удаляю все с flatMap и далее, ошибка исчезает, но, очевидно, мне нужна эта часть в какой-то момент. Не уверен, что я понять error. Я посмотрел на вопрос / ответы об одной и той же ошибке, но я все еще не уверен, как она применима к моему делу или что compiler хочет, чтобы я сделал.

1 Ответ

1 голос
/ 03 апреля 2020

Проблема в несоответствии типов. Тип возвращаемого значения: Observable <<strong> [BluetoothState] >, но внутри возвращаемого значения flatMap - Observable <<strong> BlePeripheral >

...