Paso 1 Creando el Proyecto

Esta es la cuarta y última parte de la serie en iOS Multitarea. Hoy estaremos cubriendo ubicación de fondo. Al igual que los anteriores tutoriales de multitarea de iOS de esta serie, esta característica es simple y fácil de implementar. Así que vamos a empezar!

Paso 1: Creando el Proyecto

Primero, cree un proyecto con la plantilla de aplicación basada en vista. Nombra el BackgroundTracker del proyecto y apaga las Pruebas Unitarias.

Ahora, vaya a la configuración de destino y luego vaya a la pestaña Construir fases.

En la sección "Vincular binarios con bibliotecas", agregue el CoreLocation Framework.

Ahora, en Archivos de soporte, vaya a BackgroundTrack-Info.plist y agregue una nueva línea con la clave de los modos de fondo requeridos. Debería convertirse en una matriz. Abra la matriz y para el Elemento 0 establezca el valor de la clave en los registros de la aplicación para las actualizaciones de ubicación.

Paso 2: Codificación de la interfaz de usuario

Ahora ve a la barra lateral del proyecto y abre el BackgroundTrackerViewController.h. En la parte superior, bajo #import , añadir la siguiente línea:

 #importar 

A la derecha inmediata de la declaración de subclase UIViewController, agregue la siguiente línea:

 

Luego, bajo la declaración de interfaz (justo debajo de la línea que acaba de agregar a CLLocationManagerDelegate) agregue el siguiente código:

 CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel;

Luego, debajo de la abrazadera de cierre inferior, agregue estas líneas:

 @ propiedad (no atómica, retener) CLLocationManager * locationManager; @ propiedad (no atómica, retener) IBOutlet UIButton * startTrackingButton; @ propiedad (no atómica, retener) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) remitente;

A su archivo .h le debe gustar lo siguiente.

 #importar  #importar  @interface BackgroundTrackerViewController: UIViewController  CLLocationManager * locationManager; IBOutlet UIButton * startTrackingButton; IBOutlet UILabel * alertLabel;  @ propiedad (no atómica, retener) CLLocationManager * locationManager; @ propiedad (no atómica, retener) IBOutlet UIButton * startTrackingButton; @ propiedad (no atómica, retener) IBOutlet UILabel * alertLabel; - (IBAction) startTracking: (id) remitente; @fin

Paso 3: Configurar la interfaz XIB

Ahora abre el BackgroundTrackerViewController.xib. Primero, arrastre un UIButton a la mitad de la interfaz para que las guías azules estén en forma de cruz. Entonces ve al inspector de conexiones. Arrastre la acción touchUpInside al propietario del archivo y seleccione startTracking :. Luego arrastre la salida de referencia al propietario del archivo y seleccione el botón StartTrackingButton. Ahora arrastre un UILabel y colóquelo sobre el UIButton. Establezca el ancho para que sea la pantalla completa y el texto para que diga "No se puede encontrar la ubicación" (sin comillas). Luego, en el inspector de atributos, active la casilla de verificación Oculto. Luego ve al inspector de conexiones. Luego arrastre la salida de referencia al propietario del archivo y seleccione alertLabel.

Paso 4: Configurar el rastreador de ubicación

Ahora ve y abre LocationTrackerViewController.m. Debajo de la línea de implementación, agregue las siguientes dos líneas de código:

 @synthesize startTrackingButton; @synthesize locationManager; @synthesize alertLabel;

Ahora en el método dealloc: agregue las siguientes líneas de código debajo de [super dealloc]; línea.

 [versión del locationManager]; [startTrackingButton release]; [Liberación de alertLabel];

Ahora agregue las siguientes líneas de código a viewDidLoad: bajo [super viewDidLoad]; línea.

 locationManager = [[CLLocationManager alloc] init]; [locationManager setDelegate: self]; // Solo se aplica cuando está en primer plano; de lo contrario, se trata de cambios muy importantes [locationManager setDesiredAccuracy: kCLLocationAccuracyBest];

Y bajo las declaraciones de @synthesize agregue el siguiente método:

 - (IBAction) startTracking: (id) sender [locationManager startUpdatingLocation]; 

Luego, encima del método startTracking: agregue los métodos de delegado de CLLocatioManager (código a continuación).

 - (void) locationManager: (CLLocationManager *) manager didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation CLLocationCoordinate2D currentCoordinates = newLocation.coordinate; [alertLabel setText: @ "Se ha encontrado la ubicación"]; [alertLabel setHidden: NO]; NSLog (@ "Ingresó una nueva ubicación con las coordenadas Latitud:% f Longitud:% f", currentCoordinates.latitude, currentCoordinates.longitude);  - (void) locationManager: (CLLocationManager *) manager didFailWithError: (NSError *) error NSLog (@ "No se puede iniciar el administrador de ubicaciones. Error:% @", [descripción del error]); [alertLabel setHidden: NO]; 

Envolver

Al igual que los tres anteriores, la Ubicación de fondo es extremadamente fácil de implementar. Si necesita ayuda o simplemente tiene un consejo útil, por favor comente a continuación.