Ios RACSequence和RACSignal之间的区别是什么
也许我完全忽略了这一点,但根据上的文档,RAC序列是信号 不过。我看到一些示例,其中有如下代码: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
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
受拉驱动,因为您已经有了它的值。这是一个很好的解释方法。非常感谢。我认为反应型可可很大程度上是由拉力驱动的。