您好我正在尝试了解 RxSwift 库以编写更好的功能代码。
目前我陷入了一个非常基本的问题。可以说我得到了这个类型的变量Variable<[CiteModel?]>
:
var allCites: Variable<[CiteModel?]> = Variable([])
var shownCites: Variable<[CiteModel?]> = Variable([])
现在我想从allCites
包含特定文本的数组中过滤所有引用并将它们添加到shownCites
.
这是我尝试过的,但它无法编译,因为我的过滤器块内部$0
不是[CiteModel?]
我 CiteModel?
所期望的。你能向我解释我做错了什么吗?
private func filterCitesByQuery(query: String) {
self.shownCites = self.allCites.asObservable().filter {
$0?.cite.containsString(query)
}
}
执行上述代码时出错:
Cannot assign value of type 'Observable<[CiteModel?]>' (aka 'Observable<Array<Optional<CiteModel>>>') to type 'Variable<[CiteModel?]>' (aka 'Variable<Array<Optional<CiteModel>>>')