Reactivecocoa: sinal disparando duas vezes, distintoUntilChanged não capturando duplicatas

Criado em 20 dez. 2013  ·  3Comentários  ·  Fonte: ReactiveCocoa/ReactiveCocoa

Ok, um pouco confuso aqui.

Meu viewModel tem uma propriedade searchString que eu verifiquei apenas é definida uma vez. No entanto, ele é disparado duas vezes, fazendo duas chamadas de API. Não importa que não deva ser disparado duas vezes, mas há até mesmo distinctUntilChanged lá que não está evitando isso. Se eu colocar um ponto de interrupção em map , ele definitivamente acertará duas vezes com o mesmo valor para queryString .

RACSignal *searchResultsSignal = [[[[[[[[RACObserve(self, searchString)
    ignore:nil]
    ignore:@""]
    distinctUntilChanged]
    deliverOn:[RACScheduler scheduler]]
    map:^id (NSString *queryString) {
        @strongify(self);
        TCThirdPartyAPIType type = [TCAPIIndividual thirdPartyAPITypeForAPITypeString:self.activeAPI.APITypeString];
        return [TCThirdPartyAPIHelper fetchResultsForAPIType:type withQueryString:queryString latitude:self.latitude longitude:self.longitude];
    }]
    switchToLatest]
    map:^id(TCAPIResponse *response) {
        return response.result.array;
    }] catch:^RACSignal *(NSError *error) {
        return [RACSignal return: @[]];
    }];

Esqueci de mencionar que se eu me inscrever diretamente em RACObserve(self, searchString) e inserir um ponto de interrupção, isso só será detectado uma vez.

question

Comentários muito úteis

Seu comentário salvou minha vida: D

Todos 3 comentários

Merda. Esquece. Inscrito duas vezes.

Seu comentário salvou minha vida: D

Eu já tive esse problema antes, eu uso uitextfiled , Quando eu escuto o texto, o sinal dispara duas vezes, porque o uitextfiled isFirstResponder mudou, quando isFirstResponder é NÃO disparado, é YES disparado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

LunaCodeGirl picture LunaCodeGirl  ·  3Comentários

RuiAAPeres picture RuiAAPeres  ·  3Comentários

akashivskyy picture akashivskyy  ·  5Comentários

v-silin picture v-silin  ·  4Comentários

danishin picture danishin  ·  4Comentários