尝试使用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想要我做什么。感谢有关如何解决此问题的任何指示。

最佳答案

问题是类型不匹配。函数的返回类型为Observable < [BluetoothState] >,但是flatMap内部的返回类型为Observable < BlePeripheral >

10-04 21:06