IOS 7 рд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛рдлреА рд╕реАрдорд┐рдд рдереЗ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рдереЗ рдЬрдм рдЙрдирдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдмрдиреЗ рд░рд╣реЗред рд╡реАрдУрдЖрдЗрдкреА рдФрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ рдЬреЛ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рднреАрддрд░ рдкреНрд░рдмрдВрдзрди рддрдХ рд╕реАрдорд┐рдд рдереЗред рдпрджрд┐ рдЖрдк рдСрдлрд╝рд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рд╡реАрдбрд┐рдпреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдлрд╝реЛрдЯреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ рдХрд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
IOS 7 рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдирдП рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкрд╣рд▓рд╛, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЗрдЪ (рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдбрд┐рд▓реАрд╡рд░ рдХрд░рдирд╛ рдпрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛), рдЖрдкрдХреЛ рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдирдИ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреВрд╕рд░рд╛, рд░рд┐рдореЛрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди, рдпрд╣ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдЖрдкрдХреЛ рд╕реВрдЪрдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╢ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рдШрдЯрд┐рдд рд╣реЛрддреА рд╣реИред рдпреЗ рджреЛрдиреЛрдВ рдирдП рддрдВрддреНрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдирдИ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реЗрд╡рд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛-рдЖрдЙрдЯ-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг) рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЙрдЪ рдФрд░ рд░рд┐рдореЛрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓реАрдХреЗрд╢рди рд╣реБрдХ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд░реБрдХрдиреЗ рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ 30 рд╕реЗрдХрдВрдб рдореЗрдВ рддрдп рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЧрд╣рди рдХрд╛рд░реНрдп рдпрд╛ рд▓рдВрдмреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐, рд╡реЗ рдЕрдЧрд▓реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдмрдбрд╝реА рдлрд┐рд▓реНрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдпрд╛ рддреНрд╡рд░рд┐рдд рд╕рд╛рдордЧреНрд░реА рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд┐рдЪрд░ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╕реНрдиреИрдкрд╢реЙрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИ - рдЕрдм рдЖрдк рдирдИ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ, рд╕рдорд╛рдЪрд╛рд░, рдпрд╛ рдореМрд╕рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдм рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕реНрдХреЗрдЪрдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЗрдЪ рдПрдХ рддрд░рд╣ рдХрд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреЛрд▓рд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬрд╝реНрдо рд╣реИ рдЬреЛ рдЙрди рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд▓рдЧрд╛рддрд╛рд░ рдХрдВрдЯреЗрдВрдЯ рдЕрдкрдбреЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ, рдиреНрдпреВрдЬрд╝ рдпрд╛ рд╡реЗрджрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд┐рд╕реНрдЯрдо "рдЬрд╛рдЧрддрд╛ рд╣реИ" рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ 1 рджрд┐рди рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧ рдХреА рдЕрд╡рдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рдмреИрдЯрд░реА рдЕрдкрдбреЗрдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЕрдкрдбреЗрдЯ рдХреЛ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдирдпрд╛ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛, рддреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рджреМрд░рд╛рди рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП iOS рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЗрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдЬрд╛рдирдХрд╛рд░реА рд╢реАрдЯ рдореЗрдВ
UIBackgroundModes рдХреБрдВрдЬреА рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ Xcode 5 рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреНрд╖рдорддрд╛рдУрдВ рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрднрд╛рдЧ рдореЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдХреБрдВрдЬреА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<key>UIBackgroundModes</key> <array> <string>fetch</string> </array>
рдЗрд╕рдХреЗ рдмрд╛рдж, iOS рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]; return YES; }
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдкрдбреЗрдЯ рдЕрдВрддрд░рд╛рд▓ рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред OfUIApplicationBackgroundFetchIntervalMinimum рдХрд╛ рдорд╛рди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд┐рддрдиреА рдмрд╛рд░ рд╕рдВрднрд╡ рд╣реЛ рдЙрдареЗ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдореМрд╕рдо рдРрдк рдХреЛ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред IOS рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рдмреАрдЪ рдХрдо рд╕реЗ рдХрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдирдпрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рддреЛ рдЖрдк рдПрдХ рдЕрдЪреНрдЫреЗ рдирд╛рдЧрд░рд┐рдХ рд╣реЛрдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдмреИрдХрдПрдлрд╝рдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЗрдЪреЗрдЗрдВрдЯрд░рд╡рд▓ рдХреЛ рдпреВрдЖрдИрдПрдкреНрдкреНрд▓реАрдХреЗрд╢рдирдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╝реЗрдЪреЗрдЗрдВрдЯрд░рд╡рд▓реНрд╡рд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрддрд┐рдо рдЪрд░рдг рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ:
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; NSURL *url = [[NSURL alloc] initWithString:@"http://yourserver.com/data.json"]; NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (error) { completionHandler(UIBackgroundFetchResultFailed); return; }
рдпрд╛рдж рд░рдЦреЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 30 рд╕реЗрдХрдВрдб рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдирдИ рд╕рд╛рдордЧреНрд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдирдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдердВрдмрдиреЗрд▓ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВред рдЬрдм рдЖрдкрдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИрдВрдбрд▓рд░ рджреЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢рдХреНрддрд┐ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ UIBackgroundFetchResult рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдП рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рдереЗред рджреВрд╕рд░реЗ, рдЬрдм рдЖрдк рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореИрдиреЗрдЬрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдЧрд╛ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦреЗрдЧрд╛ред рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдпрд╣ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирдП рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ API рдореЗрдВ рд╕рднреА рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдк-рдШрдЯрдХреЛрдВ рдореЗрдВ рдкреВрд░реНрдгрд╣реИрдВрдбрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗрдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рдЖрдкрдиреЗ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рдиреЗ рдкрд░ iOS рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реЗ рдЬрдЧрд╛ рджреЗрдЧрд╛: performFetchWithCompletionHandler:ред рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: didFinishLaunchingWithOptions:ред рдЖрдк рдЗрд╕реЗ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпреВрдЖрдИ рдЕрджреГрд╢реНрдп рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЗрд╕реЗ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЛрд░реНрдб рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдерд╛ред
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдЙрд╕реА рдХрд╛рдо рдХреЛ рдХрд░реЗрдВрдЧреЗ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЕрдкрд▓рд┐рдлреНрдЯреЗрд╢рди рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рдирд╕реНрдЯреИрдЯ рдХреЛ рджреЗрдЦрдХрд░:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"Launched in background %d", UIApplicationStateBackground == application.applicationState); return YES; }
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЕрдкрдбреЗрдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧрдкреГрд╖реНрдарднреВрдорд┐ рдЕрджреНрдпрддрди рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред Xcode рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдФрд░ рдбреАрдмрдЧ рдореЗрдВ Xcode рдореЗрдиреВ рдкрд░ Simulate Background рдЕрдкрдбреЗрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк Xcode рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Xcode рдХреЗ рддрд╣рдд, рдЙрддреНрдкрд╛рдж рдореЗрдиреВ рдЖрдЗрдЯрдо, рд╕реНрдХреАрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдпреЛрдЬрдирд╛рдПрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред рдпрд╣рд╛рдВ рд╕реЗ, рдПрдХ рдирдИ рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдпрд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдЗрд╡реЗрдВрдЯрдЪреЗрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рд╣рдЯрд╛рдП рдЧрдП рдЕрдзрд┐рд╕реВрдЪрдирд╛рдПрдВрджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдВ рдЖрдкрдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред рдСрдлрд╝рд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рдирдП рддреНрд╡рд░рд┐рдд рд╕рдВрджреЗрд╢, рд╕рдорд╛рдЪрд╛рд░ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдпрд╛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╕рдВрджреАрджрд╛ рдЯреАрд╡реА рд╢реЛ рдХреЗ рдЕрдВрддрд┐рдо рдПрдкрд┐рд╕реЛрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдкрдбреЗрдЯ рдХреЗ рдмреАрдЪ рджреЗрд░реА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рд▓реЙрдиреНрдЪ рд╣реЛрддрд╛ рд╣реИред
рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛ рдЙрдкрд▓рдмреНрдз рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рдирд┐рдпрдорд┐рдд рдзрдХреНрдХрд╛ рд╕реВрдЪрдирд╛ рд╣реИред рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдкреБрд╢ рдЕрд▓рд░реНрдЯ рд╕рдВрджреЗрд╢ рдЪреЗрддрд╛рд╡рдиреА рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рд░рд┐рдореЛрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рднреА рд╢рд╛рдВрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрд▓рд░реНрдЯ рд╕рдВрджреЗрд╢ рдпрд╛ рдзреНрд╡рдирд┐ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╕реВрдЪрдирд╛рдПрдВ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рдЗрд▓реЗрдВрдЯ рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдВ рдЧрддрд┐ рдореЗрдВ рд╕реАрдорд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреА рдЬрд┐рддрдиреА рдЬрд░реВрд░рдд рд╣реЛ рдЙрддрдиреА рднреЗрдЬрдиреЗ рдореЗрдВ рдбрд░реЗрдВ рдирд╣реАрдВред IOS рдФрд░ APNS рд╕рд░реНрд╡рд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреЗрдЬрдХрд░ рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдирд╣реАрдВ рдкрдбрд╝реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреА рдкреБрд╢ рд╕реВрдЪрдирд╛ рдереНрд░реЙрдЯрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЕрдЧрд▓реА рдмрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕рддреНрдпрд╛рдкрди рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реВрдЪрдирд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред
рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдирд╛рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд╢ рд╕реВрдЪрдирд╛ рдкреЗрд▓реЛрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдмреЙрдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреЗрд▓реЛрдб рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреНрд╖рдорддрд╛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд╛рддрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реНрдпреВрд╕реНрдЯрди рдШреБрдордВрддреВ рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рд╣реНрдпреВрд╕реНрдЯрди рдХреЛ рдЦрд╛рдирд╛рдмрджреЛрд╢-рдХреНрд▓рд╛рдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
gem install nomad-cli
рдФрд░ рдлрд┐рд░ рдиреЛрдорд╛рдж рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдПрдкрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬреЗрдВ:
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:
{ "aps" : { "content-available" : 1 }, "content-id" : 42 }
IOS 7 рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА - рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдкреБрд╢ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"Remote Notification userInfo is %@", userInfo); NSNumber *contentID = userInfo[@"content-id"];
рдлрд┐рд░ рд╕реЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреВрд░рд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 30 рд╕реЗрдХрдВрдб рджреЗрддрд╛ рд╣реИред рд╣рдо рдПрдХ рддреНрд╡рд░рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдмрдбрд╝реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирдИ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
NSURLSession рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реЗрд╡рд╛рдЬрдмрдХрд┐ NSURLSession iOS 7 рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рд╣реИ, рдпрд╣ рд▓рд┐рдВрдХрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдирдИ рддрдХрдиреАрдХ рдХреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред NSURLConnection рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рдкрд░рд┐рдЪрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдЬреИрд╕реЗ NSURL, NSURLRequest рдФрд░ NSURLResponse рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк NSURLConnection рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, NSURLSessionTask рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрд░ рдХрд╛рд░реНрдп рд╣реИрдВ - рдбреЗрдЯрд╛, рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдкрд▓реЛрдбред
NSURLSession рдЗрди NSURLSessionT рдорд╛рд╕реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рддрд╛ рд╣реИ рдФрд░ NSURLSessionConfiguration рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ NSURLSession рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкреГрд╖реНрдарднреВрдорд┐ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк [NSURLSessionConfiguration backgroundSessionConfiguration] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗред рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдЯрд╛рд╕реНрдХ рдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддрдм рднреА рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдорд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
NSURLSessionConfiguration рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ HTTP рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░рдиреЗ, рдХреИрд╢ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рд╕реЗрд▓реБрд▓рд░ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдХрд▓реНрдк thediscretionary рдЭрдВрдбрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрд╖реНрдЯрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗрд╡рд▓ рд╡рд╛рдИ-рдлрд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╢рдХреНрддрд┐ рд╣реЛрдЧреАред рдпрджрд┐ рдмреИрдЯрд░реА рдХрдо рд╣реИ рдпрд╛ рдХреЗрд╡рд▓ рд╕реЗрд▓реБрд▓рд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рдзреНрд╡рдЬ рдХреЗрд╡рд▓ рддрднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ thebackgroundSessionConfiguration: рдкрджреНрдзрддрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реИ, рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрджреНрдпрддрди рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╣рдореЗрд╢рд╛ рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрдм рд╣рдо NSURLSession, рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕рд░реНрд╡рд┐рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЖрдЗрдП рдЕрдкрдиреЗ рд░рд┐рдореЛрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред рдбрд╛рдЙрдирд▓реЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
NSURLSessionDownloadTaskрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП, рдкреГрд╖реНрдарднреВрдорд┐ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рд╕реВрдЪрдирд╛рдПрдБ рдФрд░ рдПрдиреНрдХреНрдпреВрд╕реЗ ANSURLSessionDownloadTask рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВред InbackgroundURLSession, рд╣рдо рдкреГрд╖реНрдарднреВрдорд┐ рд╕рддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ NURLSession рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рд╕рддреНрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдПрдХ рд╣реА рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХрдИ рд╕рддреНрд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдпреБрдХреНрддрд┐рдпрд╛рдБ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП dispatch_once рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
- (NSURLSession *)backgroundURLSession { static NSURLSession *session = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSString *identifier = @"io.objc.backgroundTransferExample"; NSURLSessionConfiguration* sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:identifier]; session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]]; }); return session; } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"Received remote notification with userInfo %@", userInfo); NSNumber *contentID = userInfo[@"content-id"]; NSString *downloadURLString = [NSString stringWithFormat:@"http://yourserver.com/downloads/%d.mp3", [contentID intValue]]; NSURL* downloadURL = [NSURL URLWithString:downloadURLString]; NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL]; NSURLSessionDownloadTask *task = [[self backgroundURLSession] downloadTaskWithRequest:request]; task.taskDescription = [NSString stringWithFormat:@"Podcast Episode %d", [contentID intValue]]; [task resume]; completionHandler(UIBackgroundFetchResultNewData); }
рд╣рдо NSURLSession рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд▓реЛрдб рдХрд╛рд░реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рддреНрд░ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдп рд▓рд┐рдореНрдмреЛ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред
рдЕрдм рд╣рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓рдмреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSURLSessionDownloadDelegate рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рддреНрд░ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╛ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛNSNSURLSessionDelegate рдпрд╛ NSURLSessionTaskDelegate рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдирд┐рдзрд┐ NSURLSessionDownloadDelegate рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП [NSURLSession downloadTask: didFinishDownloadingToURL:]ред рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА URL рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдпрд╛ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдЗрд╕ рдбреЗрд▓реАрдЧреЗрдЯ рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдкрд░ рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд╕рдВрдЧреНрд░рд╣рдг рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
#Pragma Mark - NSURLSessionDownloadDelegate - (void) URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location { NSLog(@"downloadTask:%@ didFinishDownloadingToURL:%@", downloadTask.taskDescription, location); // Copy file to your app's storage with NSFileManager // ... // Notify your UI } - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes { } - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite { }
рдпрджрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрднреА рднреА рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЬрдЧрд╛ рд╕рдХреЗред рдкрд┐рдЫрд▓реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрд╡реЗрджрди рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рджреЛ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рд╕рддреНрд░ рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрдИ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд▓рд┐рдЧреЗрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: handleEventsForBackgroundURLSession: NSURLSession рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░URLSessionDidFinishEventsForBackgroundURLSession рдХреЛ рдмрд╛рдж рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рддрд░реАрдХреЗ рдореЗрдВ, рдЖрдк рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдЖрдк рдЗрд╕реЗ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ:
- (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)())completionHandler {
рдпрд╣ рдПрдХ рджреЛ-рдЪрд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ - рдпрджрд┐ рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ iOS рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕рддреНрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рддрд░реАрдХреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛: didFinishLaunchingWithOptions:
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдзрд╣рдордиреЗ рдкреГрд╖реНрдарднреВрдорд┐ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рд╢рдХреНрддрд┐ рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдЫреБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ NSURLSessionConfiguration рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NSURLSessionConfiguration рдореЗрдВ NSURLSessionTasks рд╕рдВрд╕рд╛рдзрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП TimeInterval рдХреЗ рднреАрддрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд╛рдИ-рдлрд╛рдИ рдмреИрдВрдбрд╡рд┐рдбреНрде рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, NSURLSession рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк iOS 6 рдореЗрдВ рдХрд░реЗрдВрдЧреЗред рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдПрд╕рдИрдЖрд░рдПрд╕рдПрд▓рдПрд▓рдПрд╕рд╕реАрдСрдирдлрд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╕реЗрд╢рдирд╕реНрд▓реИрдХрдЪрдВрдЪ рдИрд╡реЗрдВрдЯред рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ iOS рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдХреЛ рдЦреБрд╢ рд░рдЦрддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдкреГрд╖реНрдарднреВрдорд┐ рд╕рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЖрдк onNSURLSession рдХреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдкреГрд╖реНрдарднреВрдорд┐ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗрд╡рд▓ HTTP рдФрд░ HTTPS рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рд┐рд╕реНрдЯрдо рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рд╣рд░ рд╕рдордп рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ NSURLSessionDataTasks рдкреГрд╖реНрдарднреВрдорд┐ рд╕рддреНрд░реЛрдВ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ, рдЫреЛрдЯреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд▓реЛрдб рдХрд░рдиреЗ рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рд╛рд░рд╛рдВрд╢IOS 7 рдореЗрдВ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирдП рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдиреЗ рдирдП рдФрд░ рдореМрдЬреВрджрд╛ рджреЛрдиреЛрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЦреЛрд▓ рджреА рд╣реИред рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрди рд╢рд╛рдирджрд╛рд░ рдирдП рдПрдкреАрдЖрдИ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рд╕рд╛рд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдирд╛, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рдерд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВред
тАв рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирдП рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
тАв рдХреБрд╢рд▓ рдмрдиреЗрдВ рдФрд░ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдкреВрд░реНрдг рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмреБрд▓рд╛рдПрдВред
тАв рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред