рдареАрдХ рд╣реИ рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рддред
рдореЗрд░реЗ 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
рдореБрдЭреЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рд╣реИ: рдореИрдВ uitextfiled рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реВрдВ, рд╕рд┐рдЧреНрдирд▓ рджреЛ рдмрд╛рд░ рдлрд╛рдпрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, uitextfiled рдХреА рд╡рдЬрд╣ рд╕реЗ рдлрд░реНрд╕реНрдЯ рд░реЗрд╕реНрдкреЙрдиреНрдбрд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдлрд░реНрд╕реНрдЯ рд░реЗрд╕реНрдкреЙрдиреНрдбрд░ рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рд╛рдБ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореЗрд░реА рдЬрд╛рди рдмрдЪрд╛рдИ :D