小编Jas*_*pas的帖子

为什么SignalProducer不返回信号?

我觉得我理解ReactiveCocoa的所有基本组件(从概念上讲),通过了解如何将所有组件连接在一起仍然有点令人困惑.

例如,在阅读了有关Signal之后,我完全希望SignalProducer只有一个start()方法返回一个Signal,你可以这样使用它:

mySignalProducer.start().observe(myObserver)
Run Code Online (Sandbox Code Playgroud)

相反,你必须将观察者传递给start(),SignalProducer为你调用observe():

mySignalProducer.start(myObserver)
Run Code Online (Sandbox Code Playgroud)

这意味着SignalProducer的接口要大得多(更需要理解),因为observe()的所有变量都必须在start()上重复(例如startNext()等).

我认为这里有两种可能性:

  1. 有技术原因,为什么start()不能简单地返回一个信号
  2. 我在概念上误解了SignalProducer,导致对其界面的不满

如果是1,我猜这与内存管理和一次性用品有关,我还不完全了解.

我更担心2是这样的.在内部,我对SignalProducer的理解基本上映射到Factory的概念,例如:

mySignalFactory.createSignal().observe(myObserver)
Run Code Online (Sandbox Code Playgroud)

这就是为什么我很惊讶我们没有找到返回Signal的start().

如果社区可以在这里阐明一点,我将非常感激.

谢谢!

ios reactive-cocoa swift reactive-cocoa-4

7
推荐指数
1
解决办法
1892
查看次数

标签 统计

ios ×1

reactive-cocoa ×1

reactive-cocoa-4 ×1

swift ×1