RACMulticastConnection

RACMulticastConnection

使用ReactiveCocoa,似乎有两种方式让订阅方从一个信号接收相同的值,而不是重新触发任何操作生成这些值:通过RraceRePipe主题或RealMulkStudio连接。
以下是racreplaysubject的头文档:
重播主题保存其发送的值(直到其定义的容量)
并将其重新发送给新订户。它还将重播错误或
完成。
对于racmulticast连接:
多播连接封装了共享对
向许多订户发出信号。如果订阅
潜在的信号包括副作用或不应该被称为超过
一次。
只有当
-[RACMulticastConnection connect]被调用。在那之前,没有价值观
将在signal上发送。参见-[RACMulticastConnection autoconnect]了解如何
-[RACMulticastConnection connect]可以自动调用。
请注意,不应手动创建racmulticast连接。而是使用
-[RACSignal publish]-[RACSignal multicast:]
有人能提供简单的指南,告诉你什么时候使用RracePrPress或RoCopeStudioDead?

最佳答案

实际上,它们并不是互斥的,甚至可以一起使用。
AA>的主要目的是订阅基本信号,然后将订阅发送到任意数量的其他用户,而不触发基带信号的多次副作用。
RACMulticastConnection通过将值发送到privateRACMulticastConnection来实现这一点,privateRACSubject通过连接的signal属性公开。订阅者附加到主题(这不会造成任何副作用),并且连接会在那里转发所有基本信号的事件。
有几种不同的方法可以创建连接:
-publish创建一个与普通RACSubject的连接。此主题不会将以前的值重播给新订阅服务器。
-multicast:方法创建与所选主题的连接。你可以决定在这里使用RACReplaySubject
-replay-replayLast-replayLazily方法便于创建与aRACReplaySubject的连接,然后也可以自动地与aconnecting建立连接。
如果有疑问,-replayLazily可能会做你想做的事情,因为它保存所有的值,并且只有当返回的信号接收到订阅时,才会触发任何副作用(或者启动任何工作)。

10-05 22:18