Reactivecocoa: рджреЛ рдмрд╛рд░ рд╕рд┐рдЧреНрдирд▓ рдлрд╛рдпрд░рд┐рдВрдЧ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрдм рддрдХ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рджрд┐рд╕ре░ 2013  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ReactiveCocoa/ReactiveCocoa

рдареАрдХ рд╣реИ рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рддред

рдореЗрд░реЗ viewModel рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ searchString рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджреЛ рдмрд╛рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреЛ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рдХрд┐ рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рдлрд╛рдпрд░рд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдПрдХ distinctUntilChanged рднреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рд░реЛрдХ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ map рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 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: @[]];
    }];

рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдпрджрд┐ рдореИрдВ рд╕реАрдзреЗ RACObserve(self, searchString) рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реВрдВ, рдФрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдкрдХрдбрд╝рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореЗрд░реА рдЬрд╛рди рдмрдЪрд╛рдИ :D

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдорд▓ред рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рджреЛ рдмрд╛рд░ рд╕рджрд╕реНрдпрддрд╛ рд▓реАред

рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореЗрд░реА рдЬрд╛рди рдмрдЪрд╛рдИ :D

рдореБрдЭреЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рд╣реИ: рдореИрдВ uitextfiled рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реВрдВ, рд╕рд┐рдЧреНрдирд▓ рджреЛ рдмрд╛рд░ рдлрд╛рдпрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, uitextfiled рдХреА рд╡рдЬрд╣ рд╕реЗ рдлрд░реНрд╕реНрдЯ рд░реЗрд╕реНрдкреЙрдиреНрдбрд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдлрд░реНрд╕реНрдЯ рд░реЗрд╕реНрдкреЙрдиреНрдбрд░ рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рд╛рдБ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

iby picture iby  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

akashivskyy picture akashivskyy  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gabro picture gabro  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lxian picture lxian  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tomj picture tomj  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ