Dette er den fjerde og siste delen av serien på IOS Multitasking. I dag skal vi dekke bakgrunnsbasis. Akkurat som iOS multitasking-veiledningene i denne serien, er denne funksjonen enkel og enkel å implementere. Så la oss starte!
Først opprett et prosjekt med Visbasert applikasjonsmal. Navngi prosjektet BackgroundTracker og slå av Unit Tests.
Gå nå til målinnstillingene, og gå til flippen Byggfaser.
I delen "Link binær med biblioteker" legger du til CoreLocation Framework.
Nå, under Supporting Files, går du til BackgroundTrack-Info.plist og legger til en ny linje med nøkkelen til nødvendige bakgrunnsmodus. Det bør bli en matrise. Åpne arrayet og for element 0 angir verdien for nøkkelen til App-registreringer for lokaliseringsoppdateringer.
Nå går du inn i prosjektlinjebjelken og åpner BackgroundTrackerViewController.h. På toppen, under #import
#importere
Til høyre for UIViewController-underklassdeklarasjonen legger du til følgende linje:
Deretter legger du til følgende kode under @face-deklarasjonen (rett under linjen du nettopp har lagt til CLLocationManagerDelegate):
CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel;
Deretter legger du til disse linjene under den nedre lukkebøylen:
@property (nonatomic, behold) CLLocationManager * locationManager; @property (nonatomic, behold) IBOutlet UIButton * startTrackingButton; @property (nonatomic, behold) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) avsender;
Din .h-fil bør like følgende.
#importere#importere @interface BackgroundTrackerViewController: UIViewController CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel; @property (nonatomic, behold) CLLocationManager * locationManager; @property (nonatomic, behold) IBOutlet UIButton * startTrackingButton; @property (nonatomic, behold) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) avsender; @slutt
Åpne nå BackgroundTrackerViewController.xib. Først, dra ut en UIButton til midten av grensesnittet slik at de blå retningslinjene er i kryssform. Deretter går tilkoblingsinspektøren. Dra touchUpInside-handlingen til filens eier og velg startTracking :. Dra deretter referansestikket til filens eier og velg startTrackingButton. Dra nå en UILabel og plasser den over UIButton. Angi bredden for å være hele skjermen og sett teksten for å si "Kan ikke finne plassering" (uten anførselstegn). Deretter i Egenskapsinspektøren må du merke avkryssingsboksen Skjult. Deretter går du til tilkoblingsinspektøren. Dra deretter referansestikket til filens eier og velg alarmLabel.
Gå nå og åpne LocationTrackerViewController.m. Under linjen @implementation legger du til følgende to linjer med kode:
@synthesize startTrackingButton; @synthesize locationManager; @synthesize alertLabel;
Nå i dealloc: metoden legger du til følgende kodelinjer under [super dealloc]; linje.
[locationManager release]; [startTrackingButton release]; [alertLabel release];
Legg nå følgende kodelinjer til viewDidLoad: under [super viewDidLoad]; linje.
locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate: self]; // Bare gjelder når du er i forgrunnen, ellers er det svært viktige endringer [locationManager setDesiredAccuracy: kCLLocationAccuracyBest];
Og under @synthesize erklæringene legger du til følgende metode:
- (IBAction) startTracking: (id) avsender [locationManager startUpdatingLocation];
Deretter over startTracking: -metoden legger du til CLLocatioManager-delegeringsmetodene (kode nedenfor).
- (ugyldig) locationManager: (CLLocationManager *) manager gjordeUppdatertToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation CLLocationCoordinate2D currentCoordinates = newLocation.coordinate; [alertLabel setText: @ "Location has been found"]; [alertLabel setHidden: NO]; NSLog (@ "Angitt ny plassering med koordinatene Latitude:% f Lengdegrad:% f", nåværendeCoordinates.latitude, currentCoordinates.longitude); - (ugyldig) locationManager: (CLLocationManager *) manager didFailWithError: (NSError *) feil NSLog (@ "Kan ikke starte lokaliseringsleder. Feil:% @", [feilbeskrivelse]); [alertLabel setHidden: NO];
Som de foregående tre er bakgrunnsstedet ekstremt enkelt å implementere. Hvis du trenger hjelp eller bare ha et nyttig tips, vennligst kommenter nedenfor.