Eu quero filtrar os valores com base no suponha que eu tenha um sinal
RACSignal *original = ...; // sends values [1,1,2,2,3,3,3,3,3,3,3,4,4,4,3,3,1,2]
Como posso criar um sinal filtered
modo que envie valores de s
apenas se for alterado do valor anterior? ie
RACSignal *filtered = [original ...]; // sends values [1, 2, 3, 4, 3, 1, 2]
Minha intuição RAC me diz que posso fazer isso com um dos mapWithPrevious:
ou qualquer outro método, mas não tenho certeza de como eles são usados.
-[RACSignal distinctUntilChanged]
Tempo de resposta de alto nível. Obrigado @jspahrsummers =]
@jspahrsummers Seria uma boa ideia adicionar esta pergunta / resposta à seção de filtragem ou apropriada da documentação online?
O próprio operador é documentado e usado em muitos exemplos e perguntas e respostas anteriores. Não tenho certeza de onde mais poderíamos encaixá-lo.
Bem, espero que esta pergunta e resposta sirvam como documentação suficiente para que os usuários que procuram por 'valores únicos' sejam direcionados a este operador muito útil.
novo no RAC, gostando de seu potencial, não entendendo totalmente o contexto do nome "DistingUntilChanged" .. Quase parece que precisa ter um nome oposto. Como ele retornou um valor distinto _quando_ o valor muda para outro valor, ele pode realmente ser distintoWhenChanged. Posso aprender a entender, é claro, mas não é intuitivo.
@wdcurry A API Swift o chama de skipRepeats
.
Obrigado @jspahrsummers .. agora isso é mais imediatamente compreensível ..
Comentários muito úteis
@wdcurry A API Swift o chama de
skipRepeats
.