¿Utilizando cocoa reactivo para observar la UITouches?

Soy bastante nuevo en el cocoa reactivo y estoy tratando de include elementos de FRP en el juego que estoy tratando de build. Desde mi búsqueda en línea, los resources y la documentation para el cocoa reactivo parecen muy limitados y la mayoría de los tutoriales utilizan los mismos ejemplos.

Lo que quiero hacer es tener un RACSignal que brinde una secuencia de valores para el toque actual en la vista (supongo que no hay multitáctil para simplificar). Y luego use subscribeNext para realizar mis acciones a medida que el Objeto UITouch se transforma. ¡Tengo problemas para configurar la señal del RAC mismo!

Actualmente estoy haciendo lo siguiente (¡que no estoy seguro es el path correcto!)

@interface MyView:UIView{ UITouch *currentTouch; RACSignal *touchSignal; } @property(nonatomic , assign)UITouch *currentTouch; @implementation MyView @synthesize currentTouch; -(id)init{ if(self = [super init]){ } return self; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSArray *touchArray = [touches allObjects]; for(UITouch *touch in toucheArray){ currentTouch = touch; if(!touchSignal){ touchSignal = [RACObserve(self , currentTouch) distinctUntilChanged]; } } } 

Pero cada vez que el RACSignal intenta inicializar el juego se bloquea y obtengo lo siguiente:

  [MyView rac_valuesForKeyPath:observer:]: unrecognized selector sent to instance 0x2084cf90 

¿Qué estoy haciendo mal? ¿Cuál es la forma correcta de configurar un RACSignal? Además, ¿cómo puedo usar el touchSignal en un object diferente (tal vez el model MyView) y utilizar suscribirme al lado para llevar a cabo operaciones en un bloque?

Así es como lo haría, usando -rac_signalForSelector: Esto es más declarativo, less imperativo (que es donde creo que vienen tus errores).

 RACSignal *touchSignal = [[[self rac_signalForSelector:@selector(touchesBegan:withEvent:)] networkinguceEach:^(NSSet *touches, UIEvent *event) { return [touches anyObject]; }] distinctUntilChanged]