首先
Variable
已弃用,请使用
BehaviorRelay
或
BehaviorSubject
相反
改变
cases
到
行为继电器
所以你不必在
init
然后观察
index
属性,并在每次更改时将新结果绑定到
案例
像这样:
let cases = BehaviorRelay<[CaseItemViewModel]>(value: [])
let index = BehaviorRelay<Int>(value: 1)
init() {
index
.flatMap { index -> Observable<Results<RMCase>> in
let caseResult = realm.objects(RMCase.self)
.filter("boxId == \(index)")
.sorted(byKeyPath: "id", ascending: true)
return Observable.collection(from: caseResult)
}
.map { results in results.map { CaseItemViewModel(with: $0) }}
.bind(to: cases)
.disposed(by: disposeBag)
}
在里面
案例
您现在始终拥有
CaseItemViewModel
每次都会充满新的价值观
指数
更改。