尝试使用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 >