gpt4 book ai didi

ios - 将 ReactiveCocoa 中的信号组合成一个在所有变化时触发的新信号

转载 作者:可可西里 更新时间:2023-11-01 03:05:59 26 4
gpt4 key购买 nike

我正在尝试学习 ReactiveCocoa,并且正在根据 Ray Wenderlich 教程编写一个简单的 Space Invaders 克隆版。最近在开发过程中,我遇到了一个我无法解决的问题。基本上我有两个信号:

  • 点击手势信号
  • 每秒触发的定时序列

我想要实现的是将这些信号组合成一个新信号,当两个信号都发生变化时触发:可能吗?我看到了 combineLatest 方法,但只要任何信号发生变化,就会执行该 block 。

我想要的伪代码是:

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,但此时我想知道我是否在正确的 react 轨道上。 p>

最佳答案

您需要 +zip:reduce: 而不是 +combineLatest:reduce:。 Zip 要求在减少和发送新值之前更改所有信号。

关于ios - 将 ReactiveCocoa 中的信号组合成一个在所有变化时触发的新信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com