私は ReactiveCocoa を学ぼうとしており、Ray Wenderlich のチュートリアルに基づいて、単純な Space Invaders のクローンを作成しています。最近、開発中に、解決できない問題に直面しました。基本的に私は2つのシグナルを持っています:
- タップジェスチャー信号
- 毎秒起動する時限シーケンス
私が達成したいのは、これらのシグナルを新しいシグナルに結合し、両方のシグナルが変化したときに発火することです:それは可能ですか? 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);
}];
おそらく、他の方法で同じ結果を達成できるか、これは予想される動作または ReactiveCocoa ではありませんが、この時点で、正しい反応トラックにいるかどうか疑問に思います。