如何将外部阵列添加到我的Rx Observable中?

问题描述 投票:0回答:1

我有一个Observable,并希望它存在于外部filter中的elements array中。问题在于,element显然不能直接与array进行比较,因此我将looparray进行比较。这不起作用,因为return语句需要在for循环之外。

    func scanAndFilterCoreData() -> Observable<BleHandler.BlePeripheral> {

        let request = NSFetchRequest<LocalDoorCoreDataObject>(entityName: "LocalDoorCoreDataObject")
        let result = self.coreDataHandler.fetchAll(fetchRequest: request)

        return bleHandler.scan(serviceId: AppSettings.discoverServiceId)
            .flatMap{ Observable.from($0) }
            .filter { value in
                for coreData in result {
                    return value.peripheral.identifier.uuidString == coreData.dPeripheralId
                }
        }
    }

Rx的新手,我想必须有某种方法将外部array作为第二个Observable包含在parameter中,否则该如何做?

ios swift filter observable rx-swift
1个回答
0
投票

您应该使用地图而不是过滤器:

.map { value in
    let uuidString = value.peripheral.identifier.uuidString
    return result.filter { $0.dPeripheralId == uuidString }
}
© www.soinside.com 2019 - 2024. All rights reserved.