IOS рдХреЗ рд▓рд┐рдП Aviasales.ru рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдереЗред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рд╕реНрдерд╛рди рдФрд░ рдЧрдВрддрд╡реНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП iOS рдПрд╕рдбреАрдХреЗ рдХреА рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд╢рд╛рдпрдж рдЖрдкрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рджреЗрдЦрд╛ рдерд╛ред рдмрд╕ рдпрд╣ рдХрд┐ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ - рдФрд░ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЧрд╛рдпрдм рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрд╕реЗ рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ - рдмрд╕ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВредрдЧрдВрддрд╡реНрдп рд╣рд╡рд╛рдИ рдЕрдбреНрдбрд╛ рдЪрдпрди рд╕реНрдХреНрд░реАрди рдХреЛ рддреАрди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдирд┐рдХрдЯрддрдо рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ, рдЙрди рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрд╣рд▓реЗ рдЪрдпрдирд┐рдд рдХреА рд╣реИ, рдФрд░ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдХрд╛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд▓рд╛рдЗрди рд╣реИред
рдирд┐рдХрдЯрддрдо рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдкрд╣рд▓рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЕрдиреБрдорддрд┐ рдорд╛рдВрдЧрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реАрдЦрддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЖрдк рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк CLLocationManager рдХреА рдЙрджреНрджреЗрд╢реНрдп рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
locationManager.purpose = @тАЭ тАЭ;

рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдЯреАрдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╢рд╣рд░ рдХреЗ рдкрд╛рд╕ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;
рджреВрд╕рд░рд╛ рдЪрд░рдг - рдкреНрд░рд╛рдкреНрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдмреНрдпрд╛рдЬ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд▓реНрдХреЛрд╡реЛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЛ рдлрд┐рдирд┐рд╢ рд▓реИрдкрдирд┐рд░реЗрдВрдЯрд╛ рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЦреЛрдЬ рдЗрддрд┐рд╣рд╛рд╕ рдкрд┐рдЫрд▓реЗ рдкрд╛рдБрдЪ рдЪрдпрдирд┐рдд рдЖрдЗрдЯрдо рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ (рдХреЛрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде SQLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ)ред
рдЖрдЗрдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдФрд░ рд╢рд╣рд░реЛрдВ рдХреА рдЦреЛрдЬред рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд╛рд░реНрдп:
- рд╣рдо рд▓реЛрдХрдкреНрд░рд┐рдп рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╕рдЯреАрдХ рдореИрдЪ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ;
- рдпрджрд┐ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдПрдХ рд╣реА рд╕реВрдЪреА рдореЗрдВ рдЧрд▓рдд рдорд┐рд▓рд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ;
- рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдг рджрд░реНрдЬ рдХрд┐рдП рд╣реИрдВ, рддреЛ рд╡рд╣ рдХрдо рд▓реЛрдХрдкреНрд░рд┐рдп рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рдЕрдм рдХреНрд░рдо рдореЗрдВред
рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдПрдХ рдорд╣рд╛рди рдХрдИ - рд▓рдЧрднрдЧ 10 рд╣рдЬрд╛рд░ред рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп (рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдХреБрдЫ рдирд┐рдпрдорд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рдХреЗрд╡рд▓ рдбреЗрдврд╝ рд╣рдЬрд╛рд░ рд╣реИрдВред рд╣рдордиреЗ рд╢реБрд░реВ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рднреАрддрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реНрдерд▓реЛрдВ рдХреА рдЗрд╕ рд╕реВрдЪреА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рдВрдЫрд┐рдд рд╢рд╣рд░ рдХрд╛ рдЪрдпрди рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдХрд░ рд╕рдХреЗред рдЗрди рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЛрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде SQLite рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЛрд░ рдбреЗрдЯрд╛ рдХреЛ
рдкреНрд░реАрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдмрд░ рдкрд░ рдПрдХ рд▓реЗрдЦ рд╣реИ)ред рдЬрдм рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрд░реЗ рдореЗрдВ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSManagedObjectContext* context = [[ASCoreDataManager sharedInstance] currentManagedObjectContext]; NSArray *dbAirports = [ASAirport MR_findAllInContext:context]; @synchronized(self){ _airports = dbAirports; } });
рд╣рдо рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдереНрд░реЗрдб рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░реИрдВрдб рд╕реЗрдВрдЯреНрд░рд▓ рдбрд┐рд╕реНрдкреИрдЪ рдореИрдХреЗрдирд┐рдЬреНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реБрд░рдХреНрд╖рд┐рдд рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
"
MR_findAllInContext
рд╡рд┐рдзрд┐ рдХреНрдпрд╛ рд╣реИ?" рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВред рдпрд╣ MagicalRecord рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрд░ рдбреЗрдЯрд╛ рдЗрдВрдЬрди рд╕реНрд╡рдпрдВ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рд╕реЗ рд░реАрдб рд░реАрдб рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ
NSManagedObjectContext
рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ
NSManagedObjectContext
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрди рд╕рднреА рдХреЗ рд╕рд╛рде рдПрдХ
persistentStoreCoordinator
ред MagicalRecord рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрди рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕рдордиреНрд╡рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣
[NSManagedObjectContext MR_contextForCurrentThread]
рдкрджреНрдзрддрд┐ (рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ
currentManagedObjectContext
рд╡рд┐рдзрд┐ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рджреВрд╕рд░реЗ, MagicalRecord рдореЗрдВ рдХреЛрдб рдХреЗ рдорд╛рдирдХ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдХрдИ рдЬреАрд╡рди рд░рдХреНрд╖рдХ рд░реИрдкрд░ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
NSManagedObjectModel
,
NSPersistentStoreCoordinator
,
NSManagedObject
рдФрд░ рдЙрдирдХреЗ рд╡рдВрд╢ рдХреА рдПрдХ рдХрд┐рд╕реНрдо рдХрд╛
NSPersistentStoreCoordinator
, рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ, рдмрд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрднреА-рдХрднреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреБрдЫ рдЧрдВрддрд╡реНрдп рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдп, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХрдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреБрдЫ рдЕрдкрдиреЗ рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕рдордп-рд╕рдордп рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╕реЗ gzip рдХреЗ рд╕рд╛рде рд╕рдВрдкреАрдбрд╝рд┐рдд рдПрдХ JSON рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛, рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╣реИрдВ:
[ASAirport MR_truncateAllInContext:context];
рдлрд┐рд░ рд╣рдо рдирдпрд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
NSManagedObjectContext* context = [[ASCoreDataManager sharedInstance] currentManagedObjectContext]; for (APIAirport *airport in airportsArray) { ASAirport *initialAirport = [ASAirport MR_createInContext:context];
рдЖрдЗрдП рдЦреЛрдЬ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ: рдЗрд╕рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдореЛрд░реА рдореЗрдВ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдг рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╡рд░реНрдг рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рдРрд░реЗ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрди рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреЛ рдЦреЛрдЬ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдирд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд╕рд░рдгреА рдХреЗ рдПрдХ рджреЛрд╣рд░рд╛рдпрд╛ traversal рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдирд╛рдо рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдПрдХ рдЫреЛрдЯреА
рд▓реЗрд╡реЗрдВрд╕рд╛рдЗрдЯрд┐рди рджреВрд░реА рд╣реИ, рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рддрд╛ рд╣реИ рдпрд╛ рдмрд╕ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд╢рд╣рд░ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПред

рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╣рдо рдПрдХ рдлрдЬреА рдореИрдЪ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ
NSOperation
рдХреА
NSOperation
рдХрдХреНрд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд░рд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ: рдпрджрд┐ рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рддрдХ рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рд╣рдо рдСрдкрд░реЗрд╢рди рдХреЛ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рдж рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдСрдкрд░реЗрд╢рди рд░рджреНрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ:
for (ASAirport *currentAirport in initialAirports) { if (self.isCancelled) { return; }
рдЬрдм рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдСрдкрд░реЗрд╢рди рд░рджреНрдж рдХрд░реЗрдВ:
[_searchOperation cancel];
рдФрд░ рд╡рд╣ рдЕрдирдореЛрд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рддреБрд░рдВрдд рдРрд╕рд╛ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╣рд╡рд╛рдИ рдЕрдбреНрдбрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рд╡рд╣ рд╣рдореЗрд╢рд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг: рд╣рдо рдирдЬрд╝рд░рд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрдЬрд╝рд╛рди (рдирд╛рдЬрд╝рд░рд╛рди рдПрдХ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рд╣рд╡рд╛рдИ рдЕрдбреНрдбрд╛ рд╣реИ, рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрдЬрд╝рд╛рди рд▓реЗрд╡реЗрдВрд╕рдЯреЗрдЗрди рдХреЗ рд╕рдмрд╕реЗ рдирд┐рдХрдЯ рд╣реИ)ред

рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реЗрдХрдВрдб, рдФрд░ рдПрдХ рдЦреБрд╢ рдирд╛рдЬрд╝рд░рд╛рди рдЕрдм рдПрдХ рд╕рд╕реНрддрд╛ рдЯрд┐рдХрдЯ рдкрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдбрд╝ рд╕рдХрддрд╛ рд╣реИ!
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдкреБрдирд╢реНрдЪ
IOS рдХреЗ рд▓рд┐рдП Aviasales рдРрдкред
рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ
Android рдРрдк рднреА рд╣реИред