ios - RxSwift 观察数组中struct类型的变量字段

标签 ios swift rx-swift

我在观察自定义类型的数组时遇到问题,该数组具有变量字段。我想创建可观察事件,它将检查此字段的值是否已更改。 我有一个结构:

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/

相关文章:

swift - UICollectionView 不适合某些 Apple 设备上的 View Controller

ios - RxSwift 基于变量构建 Observable

ios - 使用 RxCocoa 时 XCode 在部署到模拟器时崩溃

c# - 我可以使用 NSUrlSession 在 HTTP header 中允许原始 unicode 吗?

iphone - 关于 block 中对象的 Apple 文档

ios - 火力地堡和 swift : How to use another database for storing larger files?

ios - 在 Swift 中使用自定义点注释时出现错误

ios - RxSwift MVVM 在按钮上验证表单提交然后发出 API 请求

ios - 从 BLOB(FMDB 结果)转换为 NSData 对象

ios - 为什么 UIButton 框架设置这么慢