Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios RACSequence和RACSignal之间的区别是什么_Ios_Functional Programming_Reactive Cocoa - Fatal编程技术网

Ios RACSequence和RACSignal之间的区别是什么

Ios RACSequence和RACSignal之间的区别是什么,ios,functional-programming,reactive-cocoa,Ios,Functional Programming,Reactive Cocoa,也许我完全忽略了这一点,但根据上的文档,RAC序列是信号 不过。我看到一些示例,其中有如下代码: RACSignal *letters = [@"A B C D E F G H I" componentsSeparatedByString:@" "].rac_sequence.signal; // Outputs: A B C D E F G H I [letters subscribeNext:^(NSString *x) { NSLog(@"%@", x); }]; 而且 RA

也许我完全忽略了这一点,但根据上的文档,RAC序列是信号

不过。我看到一些示例,其中有如下代码:

RACSignal *letters = [@"A B C D E F G H I" componentsSeparatedByString:@" "].rac_sequence.signal;

// Outputs: A B C D E F G H I
[letters subscribeNext:^(NSString *x) {
     NSLog(@"%@", x);
}];
而且

RACSequence *letters = [@"A B C D E F G H I" componentsSeparatedByString:@" "].rac_sequence;

// Contains: AA BB CC DD EE FF GG HH II
RACSequence *mapped = [letters map:^(NSString *value) {
    return [value stringByAppendingString:value];
}];
很多例子都有RACSequence和RACSignal。rac_sequence.signal与仅仅订阅信号本身有什么区别?

一个是拉驱动(
RACSequence
),另一个是推驱动(
RACSignal
)。发件人:

推送驱动意味着信号的值在 信号创建的时刻,可能在稍后时间可用 (例如,由于网络请求或任何用户输入的结果)。 拉动驱动意味着序列中的值在 信号创建的时刻,我们可以从流中查询值 一个接一个


在您的例子中,您使
RACSignal
受拉驱动,因为您已经有了它的值。

这是一个很好的解释方法。非常感谢。我认为反应型可可很大程度上是由拉力驱动的。