我在观察自定义类型的数组时遇到问题,该数组具有变量字段。我想创建可观察事件,它将检查此字段的值是否已更改。 我有一个结构:
struct Type {
let name: Variable<String>
let email: Variable<String>
}
我有一个数组:
let array: Variable<[Type]>
我只需要 Observable,当字段名称计数大于 0 时,它将返回 true。我尝试使用 Observable.combineLatest,但我无法正确转换数组。
最佳答案
首先,您不应该再使用 Variable
,因为它已被弃用。您应该改用 BehaviorRelay
。
我不确定我是否清楚地理解您的问题。但是您可能需要这样的东西:
// namesNotEmpty will be true if all elements in array have name.count > 0
let namesNotEmpty: Observable<Bool> = array.asObservable()
.flatMap { array -> Observable<[String]> in
if array.isEmpty {
// so that some event is emmited when array is empty
return Observable.just([""])
}
return Observable.combineLatest(array.map { $0.name.asObservable() })
}
.map { array in
array.filter { $0.isEmpty }.isEmpty
}
关于ios - RxSwift 观察数组中struct类型的变量字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454505/