【发布时间】:2018-12-04 19:56:08
【问题描述】:
我很难创建一个将单个数组转换为 Observable 的扩展。例如,我有一个Single<[Address]>,我想将其转换为Observable<Address>。
每次我想这样做时我必须编写的代码是
mySingleVariable.asObservable().flatMap({ addresses in Observable.from(addresses) })
这个操作很常见,代码也很冗长。我创建扩展的尝试如下所示
extension PrimitiveSequence where Trait == SingleTrait {
func flatObservable<R: Collection>() -> Observable<R.Element> {
return asObservable().flatMap({ element in Observable.from(element) })
}
}
不幸的是,上面的代码不起作用。我得到的错误是“函数签名中未使用通用参数'R'”。这是因为函数返回Observable<R.Element>。如果返回Observable<R>,错误就会消失,但这不是我想要达到的结果。
【问题讨论】:
标签: ios arrays swift observable rx-swift