Ceci est la quatrième et dernière partie de la série sur le multitâche iOS. Aujourd'hui, nous allons couvrir l'emplacement de fond. Tout comme les précédents tutoriels sur le multitâche iOS de cette série, cette fonctionnalité est simple et facile à mettre en œuvre. Alors commençons!
Tout d’abord, créez un projet avec le modèle d’application View Based. Nommez le projet BackgroundTracker et désactivez les tests unitaires..
Maintenant, allez dans les paramètres de la cible puis allez dans l’onglet Build Phases.
Dans la section "Link Binary with Libraries", ajoutez le framework CoreLocation..
Maintenant, sous Fichiers de support, allez à BackgroundTrack-Info.plist et ajoutez une nouvelle ligne avec la clé des modes de fond requis. Cela devrait devenir un tableau. Ouvrez le tableau et pour l'élément 0, définissez la valeur de la clé sur les registres d'application pour les mises à jour d'emplacement..
Allez maintenant dans la barre latérale du projet et ouvrez le fichier BackgroundTrackerViewController.h. Au sommet, sous #import
#importation
A la droite de la déclaration de la sous-classe UIViewController, ajoutez la ligne suivante:
Ensuite, sous la déclaration @interface (juste en dessous de la ligne que vous venez d'ajouter à CLLocationManagerDelegate), ajoutez le code suivant:
CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel;
Ensuite, sous l’accolade de fermeture inférieure, ajoutez ces lignes:
@property (nonatomic, keep) CLLocationManager * locationManager; @property (nonatomic, keep) IBOutlet UIButton * startTrackingButton; @property (nonatomic, keep) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) expéditeur;
Votre fichier .h devrait ressembler à ceci.
#importation#importation @interface BackgroundTrackerViewController: UIViewController CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel; @property (nonatomic, keep) CLLocationManager * locationManager; @property (nonatomic, keep) IBOutlet UIButton * startTrackingButton; @property (nonatomic, keep) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) expéditeur; @fin
Ouvrez maintenant le BackgroundTrackerViewController.xib. Tout d’abord, faites glisser un bouton UIB au centre de l’interface de manière à ce que les repères bleus soient en croix. Ensuite, allez à l'inspecteur de connexions. Faites glisser l'action touchUpInside sur le propriétaire du fichier et sélectionnez startTracking :. Ensuite, faites glisser la sortie de référence vers le propriétaire du fichier et sélectionnez le startTrackingButton. Maintenant, faites glisser un UILabel et positionnez-le au-dessus de UIButton. Définissez la largeur sur l’ensemble de l’écran et définissez le texte sur "Impossible de trouver la position" (sans guillemets). Ensuite, dans l'inspecteur d'attributs, cochez la case Masqué. Ensuite, allez à l'inspecteur de connexions. Ensuite, faites glisser la sortie de référence vers le propriétaire du fichier et sélectionnez alertLabel..
Allez maintenant et ouvrez LocationTrackerViewController.m. Sous la ligne @implementation, ajoutez les deux lignes de code suivantes:
@synthesize startTrackingButton; @synthesize locationManager; @synthesize alertLabel;
Maintenant, dans la méthode dealloc: ajoutez les lignes de code suivantes sous le [super dealloc]; ligne.
[version de locationManager]; [version de startTrackingButton]; [release d'alerteLabel];
Ajoutez maintenant les lignes de code suivantes à viewDidLoad: under the [super viewDidLoad]; ligne.
locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate: self]; // S'applique uniquement au premier plan, sinon il s'agit de changements très importants [locationManager setDesiredAccuracy: kCLLocationAccuracyBest];
Et sous les déclarations @synthesize, ajoutez la méthode suivante:
- (IBAction) startTracking: (id) expéditeur [locationManager startUpdatingLocation];
Ensuite, au-dessus de la méthode startTracking: ajoutez les méthodes de délégation CLLocatioManager (code ci-dessous)..
- (void) locationManager: (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation CLLocationCoordinate2D currentCoordinates = newLocation.coordinate; [alertLabel setText: @ "La localisation a été trouvée"]; [alertLabel setHidden: NO]; NSLog (@ "Entrée d'un nouvel emplacement avec les coordonnées Latitude:% f Longitude:% f", currentCoordinates.latitude, currentCoordinates.longitude); - (void) locationManager: (CLLocationManager *) manager didFailWithError: (NSError *) error NSLog (@ "Impossible de démarrer le gestionnaire d'emplacement. Erreur:% @", [description de l'erreur]); [alertLabel setHidden: NO];
Comme les trois précédents, Background Location est extrêmement facile à mettre en œuvre. Si vous avez besoin d’aide ou avez simplement un conseil utile, veuillez commenter ci-dessous.