Domanda

Sono relativamente nuovo di Objective-C e non ne so ancora molto, quindi mi scuso per quella che probabilmente è una domanda davvero amatoriale.

Sto cercando di ottenere la direzione magnetica da CLHeading e CLLocationDirection. Tuttavia sto ricevendo errori di compilazione per questa riga di codice:

locationLabel.text = [[[location course] magneticHeading] stringValue];

Gli errori sono:

warning: invalid receiver type 'CLLocationDirection'  
error: cannot convert to a pointer type

Non capisco davvero cosa sto facendo di sbagliato qui. Per favore, aiutate!

È stato utile?

Soluzione

Ecco i passaggi necessari per utilizzare la bussola.

1) verifica la disponibilità: se la proprietà headerAvailable del gestore della posizione è SÌ, puoi utilizzare la bussola.

2) usa il metodo location manager - (void) startUpdatingHeading per iniziare a ricevere le informazioni che stai cercando

3) effettivamente recuperare queste informazioni utilizzando il metodo delegato (non dimenticare di impostarti come delegato)

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

Spero che questo aiuti.

Altri suggerimenti

magneticHeading è di tipo CLLocationDirection, che è semplicemente un typedef per il tipo di dati primitivo "double". Nel tuo esempio stai provando a inviare un messaggio a qualcosa che non è un oggetto! Dovresti semplicemente formattare il doppio in questo modo:

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

Come stai allocando e inizializzando location ? Assicurati che location sia definito come (CLLocationDirection *) e non solo un (CLLocationDirection) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top