ios - 跳过(同时 :) call against a Signal in ReactiveSwift is being ignored

标签 ios swift reactive-swift

我有一个针对信号的观察者,该信号正在我的应用程序中生成项目计数。理想情况下,我想跳过所有 0 值,我尝试使用以下代码片段来做到这一点:

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

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

最佳答案

所以我的方法是不正确的,因为 skip(while:) 仅在信号开始时应用。由于初始值满足其标准,因此允许信号继续,并且以后将忽略 skip(while:) 检查。

正确的调用是 filter(:) 命令,如下所示:

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

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

关于ios - 跳过(同时 :) call against a Signal in ReactiveSwift is being ignored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153444/

相关文章:

android - Swift:WKWebView 添加像 Android 一样的 javascript 界面

ios - 在 ReactiveSwift 中,信号观察器仅在从主线程显式调用时才发送信号

ios - 在 Swift 中自己构造 NSError 对象的最佳方法是什么

ios - 如何修复 "flutter: DatabaseException(open_failed...)"?

ios - 样式功能添加到谷歌地图

ios - 核心数据 : Can only use -performBlock: on an NSManagedObjectContext that was created with a queue

ios - 在 UITextField 中的安全文本上添加自定义 View 并能够将其删除

ios - 使用响应式编程将具有 imageURL 的对象转换为具有下载的 UIImage 的对象

ios - ReactiveCocoa 的循环绑定(bind),如何将一个值绑定(bind)到两个输入 UI 元素

iphone - 核心数据关系的自定义 setter 强制反向、互惠关系