こんにちは、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>>>')