问题标签 [reactive-cocoa-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2291 浏览

swift - ReactiveSwift:如何订阅 SignalProducer?

我正在尝试学习 ReactiveSwift 和 ReactiveCocoa。我可以很好地使用SignalProperty但我遇到了麻烦SignalProducer

据我了解,它SignalProducer非常适合网络请求之类的事情。我设置了我的 API 层来创建并返回一个信号提供者,调用者可以启动它。

但是我应该怎么听结果呢?

我已经尝试过这样的事情,但我得到了一个错误,所以我必须做/考虑这个错误。

这是我得到的错误:

对成员“startWithValues”的模糊引用

  1. 找到了这个候选人 (ReactiveSwift.SignalProducer< Value, NoError >)
  2. 找到了这个候选人(ReactiveSwift.SignalProducer< Never, NoError >)

编辑

我尝试更明确地帮助编译器识别正确的方法,就像这样。但错误仍然存​​在。

编辑 2

在 GitHub 支持页面获得帮助并考虑此处提供的答案后,这就是我最终得到的结果。

与我之前尝试的一个关键区别是调用者不会手动启动返回的SignalProducer. 相反,通过在内部/响应另一个信号创建它,它隐式地在链内部开始。

我之前(错误地)假设有必要提取并明确订阅SignalSignalProducer生产”的内容。

相反,我现在将SignalProducers 简单地视为响应刺激而启动的延迟工作。我可以手动订阅,SignalProvider或者我可以让另一个Signal提供该刺激。(后者在我下面更新的示例中使用。它看起来相当干净,并且比手动启动它更具 FRP 风格,这是我从我的命令式思维方式中继承下来的。)

0 投票
1 回答
58 浏览

swift - 如何转物业进入 SignalProducer?

给定

我如何numberOfSneezes.producer变成这种类型的制作人

?

我知道numberOfSneezes.producer不会发送任何错误,但sneezeNumberProducer无论如何我都需要分配它。