Gio*_*lzo 8 objective-c ios reactive-cocoa
我正在尝试学习ReactiveCocoa,我正在编写一个简单的Space Invaders克隆,基于Ray Wenderlich教程.最近在开发过程中,我遇到了一个我无法解决的问题.基本上我有两个信号:
我想要实现的是将这些信号组合成一个新的信号,当两个信号都发生变化时会触发:是否可能?我看到了combineLatest方法,但只要有任何信号发生变化,就会执行该块.
我想要的伪代码是:
RACSignal *updateEventSignal = [RACSignal interval:1 onScheduler:[RACScheduler mainThreadScheduler]];
RACSignal *gestureSignal = [[UITapGestureRecognizer new] rac_gestureSignal];
[[RACSignal combineBoth:@[gestureSignal, updateEventSignal]
reduce:^id(id tap, id counter){
return tap;
}]
subscribeNext:^(id x) {
NSLog(@"Tapped [%@]", x);
}];
Run Code Online (Sandbox Code Playgroud)
可能我可以通过其他方式获得相同的结果,或者这不是预期的行为或ReactiveCocoa,但在这一点上我想知道我是否处于正确的反应轨道.
由于您实际上并不关心计时器中的值,因此-sample:可以执行您想要的操作:
[[gestureSignal
sample:updateEventSignal]
subscribeNext:^(id tap) {
NSLog(@"Tapped [%@]", tap);
}];
Run Code Online (Sandbox Code Playgroud)
这将在每次发生火灾时转发最新值.gestureSignalupdateEventSignal
| 归档时间: |
|
| 查看次数: |
5839 次 |
| 最近记录: |