iPhone 3.0 Compass: ¿cómo obtener un rumbo?
-
20-08-2019 - |
Pregunta
Soy relativamente nuevo en Objective-C y realmente todavía no sé mucho al respecto, así que me disculpo por lo que probablemente sea una pregunta realmente amateur.
Estoy tratando de obtener el rumbo magnético de CLHeading y CLLocationDirection. Sin embargo, obtengo errores de compilación para esta línea de código:
locationLabel.text = [[[location course] magneticHeading] stringValue];
Los errores son:
warning: invalid receiver type 'CLLocationDirection'
error: cannot convert to a pointer type
Realmente no entiendo lo que estoy haciendo mal aquí. Por favor ayuda!
Solución
Estos son los pasos necesarios para usar la brújula.
1) verifique la disponibilidad: si la propiedad headerAvailable
del administrador de ubicación es SÍ, puede usar la brújula.
2) use el método de administrador de ubicación - (void) startUpdatingHeading
para comenzar a recibir la información que está buscando
3) realmente recupera esta información usando el método delegado (no olvides establecerte como delegado)
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
Espero que esto ayude.
Otros consejos
magneticHeading es del tipo CLLocationDirection, que es simplemente un typedef para el tipo de datos primitivo " double " ;. ¡En su ejemplo, está tratando de enviar un mensaje a algo que no es un objeto! Simplemente debe formatear el doble así:
locationLabel.text = [NSString stringWithFormat: @ " Título% .3f " ;, [[curso de ubicación] título magnético]];
¿Cómo está asignando e inicializando location
? Asegúrese de que location
esté definido como (CLLocationDirection *)
y no solo como (CLLocationDirection)
.