Detta är den fjärde och sista delen av serien på IOS Multitasking. Idag kommer vi att täcka bakgrundsplatsen. Precis som tidigare iOS Multitasking-handledning i denna serie, är den här funktionen enkel och enkel att implementera. Så låt oss börja!
Skapa först ett projekt med View Based Application Template. Namn projektet BackgroundTracker och stäng av Unit Tests.
Gå nu till målinställningarna och gå till fliken Byggfaser.
I avsnittet "Länka binära med bibliotek" lägger du till CoreLocation Framework.
Nu, under Supporting Files, gå till BackgroundTrack-Info.plist och lägg till en ny rad med nyckeln till Obligatoriska bakgrundsmetoder. Det borde bli en matris. Öppna arrayen och för objekt 0 anger värdet för nyckeln till Appregistren för platsuppdateringar.
Gå nu in i projektfältet och öppna upp BackgroundTrackerViewController.h. Överst, under #import
#importera
Till höger om UIViewController-underklassdeklarationen lägg till följande rad:
Sedan lägger du till följande kod under @interfacedeklarationen (precis under linjen som du just lagt till i CLLocationManagerDelegate):
CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel;
Sedan lägger du till följande rader under den undre stängningsstången:
@property (nonatomic, behåll) CLLocationManager * locationManager; @property (nonatomic, behåll) IBOutlet UIButton * startTrackingButton; @property (nonatomic, behåll) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) avsändare;
Din .h-fil ska gilla följande.
#importera#importera @interface BackgroundTrackerViewController: UIViewController CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel; @property (nonatomic, behåll) CLLocationManager * locationManager; @property (nonatomic, behåll) IBOutlet UIButton * startTrackingButton; @property (nonatomic, behåll) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) avsändare; @slutet
Öppna nu BackgroundTrackerViewController.xib. Dra först ut en UIButton till mitten av gränssnittet så att de blå riktlinjerna är i korsform. Gå sedan till anslutningsinspektören. Dra in touchUpInside-åtgärden till filens ägare och välj startTracking :. Dra sedan referensutloppet till filens ägare och välj startTrackingButton. Dra nu en UILabel och placera den ovanför UIButton. Ställ in bredden för hela skärmen och sätt texten för att säga "Kan inte hitta plats" (utan citat). Sedan ställer du in kryssrutan Hidden i attribut inspektören. Gå sedan till anslutningsinspektören. Dra sedan referensutloppet till filens ägare och välj alertLabel.
Gå nu och öppna LocationTrackerViewController.m. Lägg till följande två rader med kod under rubriken @implementation:
@synthesize startTrackingButton; @synthesize locationManager; @synthesize alertLabel;
Nu i dealloc: -metoden lägger du till följande rader kod under [super dealloc] linje.
[locationManager release]; [startTrackingButton release]; [alertLabel release];
Lägg nu till följande rad kod till viewDidLoad: under [super viewDidLoad]; linje.
locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate: self]; // Endast gäller när det är i förgrunden annars är det väldigt signifikanta ändringar [locationManager setDesiredAccuracy: kCLLocationAccuracyBest];
Och enligt @synthesize deklarationerna lägg till följande metod:
- (IBAction) startTracking: (id) avsändare [locationManager startUpdatingLocation];
Därefter lägger du till metoderna för startTracking: CLLocatioManager delegate (kod nedan).
- (tomrum) locationManager: (CLLocationManager *) chef gjordeUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation CLLocationCoordinate2D currentCoordinates = newLocation.coordinate; [alertLabel setText: @ "Plats har hittats"]; [alertLabel setHidden: NO]; NSLog (@ "Inmatat nytt läge med koordinaterna Latitude:% f Longitude:% f", currentCoordinates.latitude, currentCoordinates.longitude); - (tomt) locationManager: (CLLocationManager *) manager didFailWithError: (NSError *) fel NSLog (@ "Kan inte starta platshanteraren. Fel:% @", [felbeskrivning]); [alertLabel setHidden: NO];
Precis som de föregående tre är bakgrundsplatsen extremt lätt att genomföra. Om du behöver hjälp eller bara ha ett bra tips, vänligen kommentera nedan.