Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 123

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Π΅Π»Π΅Π³Π°Ρ‚Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ executingInBackground. Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π·Π°Π΄Π°ΠΌ этому Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ YES, Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ вСрнСтся Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ β€” измСню Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° NO. Когда Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Core Location, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ этот Ρ„Π»Π°Π³. Если Ρ„Π»Π°Π³ установлСн Π² YES, Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ энСргоСмкими вычислСниями ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌΠΈ обновлСниями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠœΡ‹, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ отвСтствСнными программистами, Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌΠΈ тяТСлыми Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Но Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° дСйствуСт Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ‚ΠΎ Π² нашСм распоряТСнии вся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ устройства, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, попытаСмся Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ максимальной точности ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ мСстополоТСния, Ссли наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Когда ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, эту Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ смСло ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сСнсоры. Π˜Ρ‚Π°ΠΊ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π΄Π΅Π»Π΅Π³Π°Ρ‚ прилоТСния:


#import <UIKit/UIKit.h>

#import <CoreLocation/CoreLocation.h>


@interface AppDelegate () <CLLocationManagerDelegate>

@property (nonatomic, strong) UIWindow *window;

@property (nonatomic, strong) CLLocationManager *myLocationManager;

@property (nonatomic, unsafe_unretained, getter=isExecutingInBackground)

BOOL executingInBackground;


@end

@implementation AppDelegate


<# ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ вашСго ΠΊΠΎΠ΄Π° находится здСсь #>


ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ диспСтчСр мСстополоТСния ΠΈ запустим Π΅Π³ΠΎ сразу послС запуска прилоТСния:


β€” (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{


self.myLocationManager = [[CLLocationManager alloc] init];

self.myLocationManager.desiredAccuracy = kCLLocationAccuracyBest;

self.myLocationManager.delegate = self;

[self.myLocationManager startUpdatingLocation];


self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}


Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ опрСдСлСния мСстополоТСния Π½Π° довольно высоком ΡƒΡ€ΠΎΠ²Π½Π΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ прилоТСния Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ эту Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° iOS:


β€” (void)applicationDidEnterBackground:(UIApplication *)application{

self.executingInBackground = YES;


/* Π‘Π½ΠΈΠΆΠ°Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ опрСдСлСния мСстополоТСния ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ

Π½Π° iOS, ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. */

self.myLocationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;

}

Когда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСрнСтся ΠΈΠ· Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ Π΄ΠΎ высокого уровня:

β€” (void)applicationWillEnterForeground:(UIApplication *)application{

self.executingInBackground = NO;


/* Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅ΠΌ

Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ опрСдСлСния мСстополоТСния. */

self.myLocationManager.desiredAccuracy = kCLLocationAccuracyBest;

}


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, цСлСсообразно Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ любой интСнсивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ находится Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈ Ρ‚ΡƒΡ‚ диспСтчСр мСстополоТСния ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ locationManager: didUpdateToLocation: fromLocation: Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° нашСго прилоТСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


β€” (void)locationManager:(CLLocationManager *)manager

didUpdateToLocation:(CLLocation *)newLocation

fromLocation:(CLLocation *)oldLocation{


if ([self isExecutingInBackground]){

/* Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

НС выполняСм Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ слоТной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. */

} else {

/* Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π—апускаСм Π»ΡŽΠ±Ρ‹Π΅ вычислСния,

ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ */

}


}


ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ, работая Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся для удовлСтворСния Π½ΡƒΠΆΠ΄ прилоТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, сниТая Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ диспСтчСра мСстополоТСния, ΠΏΠΎΠΊΠ° ΠΎΠ½ дСйствуСт Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΌΡ‹ сниТаСм ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° iOS, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½ΠΎΠ²ΡƒΡŽ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ вСрсии симулятора iOS Π²Ρ‹ тСстируСтС свои прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ настроСк сСтСвого соСдинСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° этот процСсс, фоновая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ мСстополоТСнии ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ…ΠΎΠ΄Π΅ тСстирования. РСкомСндуСтся Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ исходный ΠΊΠΎΠ΄ ΠΈΠ· этого Ρ€Π°Π·Π΄Π΅Π»Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ устройствС.

14.6. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° состояния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ iOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

НСобходимо, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ прилоТСния для iOS Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π΅Π³ΠΎ состояниС ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΎΡΡŒ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΎΡΡŒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ вСрнСтся Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

РСшСниС

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ сообщСния ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° UIApplicationDelegate, отправляСмыС Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρƒ вашСго прилоТСния, ΠΈ увСдомлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ посылаСт систСма iOS. Π’Π°ΠΊ Π²Ρ‹ смоТСтС ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Допустим, пустоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ iOS (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всСго с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅Ρ‰Π΅ Π½Π΅ написан ΠΊΠΎΠ΄) Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ запускаСтся Π½Π° устройствС с iOS, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Оно запускаСтся ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, Π° Π½Π΅ возвращаСтся ΠΈΠ· Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π΄Π΅Π»Π΅Π³Π°Ρ‚ прилоТСния UIApplicationDelegate Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС.

1. application: didFinishLaunchingWithOptions:.

2. applicationDidBecomeActive:.


Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Home (Π”ΠΎΠΌΠΎΠΉ) Π½Π° своСм устройствС с iOS, Ρ‚ΠΎ Π΄Π΅Π»Π΅Π³Π°Ρ‚ прилоТСния ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС.

1. applicationWillResignActive:.

2. applicationDidEnterBackground:.


Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ находится Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Home (Π”ΠΎΠΌΠΎΠΉ) ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· списка Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. (ΠŸΡ€ΠΈ этом Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° оказалась Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Насколько ΠΌΠ½Π΅ извСстно, Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нашС посрСдством Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… URI-схСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.) Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСрнСтся Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π΄Π΅Π»Π΅Π³Π°Ρ‚ прилоТСния ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС.

1. applicationWillEnterForeground:.

2. applicationDidBecomeActive:.


Наряду с этими сообщСниями ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ увСдомлСния ΠΎΡ‚ iOS, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ вновь Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ состояниС Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π·Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ слСдуСт ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, пСрСходя Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ β€” лишь ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСрнСтся Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘Π°ΠΌΠ° систСма ΠΌΠΎΠΆΠ΅Ρ‚ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ сСтСвыС соСдинСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ссли ΠΊΠ°Ρ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΈΠ· Π‘Π΅Ρ‚ΠΈ. Но ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пишСм ΠΈΠ³Ρ€Ρƒ, Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ Ρ‚Π΅ увСдомлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ iOS направляСт нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ Π½Π° Π½ΠΈΡ… Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ просто Β«ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΠΏΠ°ΡƒΠ·ΡƒΒ» ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. Π­Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ со Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ 10 сСкунд, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС нСсохранСнныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° этого ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π½Π° исполнСниС этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом рассказано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 14.2).

Рассмотрим сохранСниС состояния Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ‹ пишСм ΠΈΠ³Ρ€Ρƒ для iOS. Когда ΠΈΠ³Ρ€Π° отправляСтся Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

1. ΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ.

2. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° диск ΠΎΡ‡ΠΊΠΈ, Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

3. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° диск ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ ΠΈΠ³Ρ€Π°. Π’ частности, Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ достиг Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅, физичСскиС аспСкты уровня, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ‚. Π΄.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ снова ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΈΠ³Ρ€Ρƒ, пСрСводя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

1. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с диска Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΎΡ‡ΠΊΠΈ.

2. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ с диска Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π» ΠΈΠ³Ρ€Ρƒ.

3. Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π΅Π³Π°Ρ‚ нашСго прилоТСния β€” это ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° прилоТСния нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: