Kombinieren Sie Signale in ReactiveCocoa mit einer neuen, die bei allen Änderungen ausgelöst wird

8

Ich versuche, ReactiveCocoa zu lernen, und ich schreibe einen einfachen Space Invaders-Klon, der auf einem Ray Wenderlich-Tutorial basiert. In letzter Zeit stand ich während der Entwicklung vor einem Problem, das ich nicht lösen kann. Grundsätzlich habe ich zwei Signale:

  • ein Tippgesten-Signal
  • eine zeitgesteuerte Sequenz, die jede Sekunde auslöst

Was ich erreichen möchte, ist, diese Signale in einem neuen zu kombinieren, das feuert, wenn sich beide Signale ändern: ist es möglich? Ich habe die Methode combineLatest gesehen, aber der Block wird ausgeführt, wenn sich Signale ändern.

Mein gewollter Pseudocode ist:

%Vor%

Wahrscheinlich kann ich das gleiche Ergebnis auf andere Weise erzielen oder dies ist nicht das erwartete Verhalten oder ReactiveCocoa, aber an dieser Stelle frage ich mich, ob ich in der richtigen reaktiven Spur bin oder nicht.

    
Giordano Scalzo 22.11.2013, 12:17
quelle

3 Antworten

12

Anstelle von +combineLatest:reduce: möchten Sie +zip:reduce: . Zip erfordert, dass alle Signale geändert werden, bevor ein neuer Wert reduziert und gesendet wird.

    
Josh Abernathy 22.11.2013, 13:35
quelle
5

Da Sie die Werte des Timers nicht wirklich interessieren, kann -sample: tun, was Sie wollen:

%Vor%

Dies wird den letzten Wert von gestureSignal weiterleiten, wenn updateEventSignal ausgelöst wird.

    
Justin Spahr-Summers 22.11.2013 20:03
quelle
1
%Vor%     
Naloiko Eugene 30.03.2014 08:41
quelle

Tags und Links