2009-06-25 7 views
6

Soy relativamente nuevo en Objective-C y realmente aún no sé mucho sobre él, así que me disculpo por lo que probablemente sea una pregunta realmente de aficionados.iPhone 3.0 Compass: cómo obtener un título?

Estoy tratando de obtener el título magnético de CLHeading y CLLocationDirection. Sin embargo estoy recibiendo 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 

No entiendo realmente lo que estoy haciendo mal aquí. ¡Por favor ayuda!

Respuesta

14

Estos son los pasos necesarios para usar la brújula.

1) verifique la disponibilidad: si la propiedad headingAvailable del administrador de ubicación es SÍ, entonces puede usar la brújula.

2) utilizar el método de gerente de locación -(void) startUpdatingHeading para comenzar a recibir la información que está buscando

3) en realidad recuperar esta información usando el método delegado (no se olvide de establecer a sí mismo como el delegado)

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 

Espero que esto ayude.

+1

Por el amor de Google: La propiedad headingAvailable es obsoleta desde IO4. Ahora hay un encabezado Método de clase disponible que devuelve un valor booleano. – Raj

+6

Genius, ¿puedes leer el título? –

1

¿Cómo está asignando e inicializando location? Asegúrese de que location esté definido como (CLLocationDirection *) y no solo como (CLLocationDirection).

3

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 de esta manera:

locationLabel.text = [NSString stringWithFormat:@"Heading %.3f", [[location course] magneticHeading]];

+0

Gracias, aquí era donde estaba realmente confundido. Necesito aprender más sobre typedefs, supongo. –

Cuestiones relacionadas