代码之家  ›  专栏  ›  技术社区  ›  CodeBender

忽略针对ReactiveSwift中信号的Skip(while:)调用

  •  0
  • CodeBender  · 技术社区  · 8 年前

    viewModel.itemCount.signal
        .skipRepeats()
        .skip(while: { itemCount -> Bool in return itemCount == 0 })
        .observeValues { itemCount in
            print("Item count: \(itemCount)") // Will still print 0
    }
    

    不幸的是,它仍然允许值0通过。

    1 回复  |  直到 8 年前
        1
  •  0
  •   CodeBender    8 年前

    skip(while:) 仅在信号开始时应用。由于初始值满足其标准,因此允许信号继续,并且

    filter(:)

    .filter({ itemCount -> Bool in return itemCount != 0 })
    

    使用滤波器不会影响信号,而是关注是否应该观察传递的值。

    推荐文章