Reactivecocoa: Pregunta: Señal solo para valores únicos

Creado en 29 abr. 2014  ·  8Comentarios  ·  Fuente: ReactiveCocoa/ReactiveCocoa

Quiero filtrar valores basados ​​en el Supongamos que tengo una señal

RACSignal *original = ...;   // sends values [1,1,2,2,3,3,3,3,3,3,3,4,4,4,3,3,1,2]

¿Cómo puedo crear una señal filtered tal que envíe valores de s solo si se cambia del valor anterior? es decir

RACSignal *filtered = [original ...];  // sends values [1, 2, 3, 4, 3, 1, 2]

Mi intuición de RAC me dice que puedo hacer esto con uno de esos mapWithPrevious: o cualquier otro método, pero no estoy muy seguro de cómo se usan.

question

Comentario más útil

@wdcurry La API de Swift lo llama skipRepeats lugar.

Todos 8 comentarios

-[RACSignal distinctUntilChanged]

Tiempo de respuesta de primer nivel. Gracias @jspahrsummers =]

@jspahrsummers ¿Sería una buena idea agregar esta Q / A a la sección de filtrado o apropiada de la documentación en línea?

El operador en sí está documentado y se usa en muchos ejemplos y preguntas y respuestas anteriores. No estoy seguro de dónde más podríamos encajarlo.

Bueno, espero que esta pregunta y respuesta sirvan como documentación suficiente para que los usuarios que buscan 'valores únicos' sean señalados a este operador tan útil.

nuevo en RAC, que le gusta su potencial, totalmente sin entender el contexto del nombre "distintoUntilChanged". Casi parece que necesita un nombre opuesto. Como devolvió un valor distinto _cuando_ el valor cambia a otro valor, en realidad podría ser distintoWhenChanged. Puedo aprender a entenderlo, por supuesto, pero no es intuitivo.

@wdcurry La API de Swift lo llama skipRepeats lugar.

Gracias @jspahrsummers .. ahora que es más comprensible de inmediato ..

¿Fue útil esta página
0 / 5 - 0 calificaciones