Question

Je suis relativement nouveau dans Objective-C et je n'y connais pas grand-chose à ce jour. Je m'excuse donc pour cette question qui est probablement très amateur.

J'essaie d'obtenir le cap magnétique de CLHeading et CLLocationDirection. Cependant, je reçois des erreurs de compilation pour cette ligne de code:

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

Les erreurs sont les suivantes:

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

Je ne comprends pas vraiment ce que je fais mal ici. S'il vous plaît, aidez!

Était-ce utile?

La solution

Voici les étapes à suivre pour utiliser la boussole.

1) vérifiez la disponibilité: si la propriété headingAvailable du gestionnaire de lieux est OUI, vous pouvez utiliser le compas.

2) utilisez la méthode du gestionnaire d'emplacement - (void) startUpdatingHeading pour commencer à recevoir les informations recherchées

.

3) récupérez réellement ces informations en utilisant la méthode déléguée (n'oubliez pas de vous définir en tant que délégué)

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

J'espère que cela vous aidera.

Autres conseils

magneticHeading est de type CLLocationDirection, qui est simplement une référence typée pour le type de données primitif "double". Dans votre exemple, vous essayez d'envoyer un message à quelque chose qui n'est pas un objet! Vous devriez simplement formater le double comme suit:

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

Comment allouez-vous et initialisez-vous emplacement ? Assurez-vous que emplacement est défini en tant que (CLLocationDirection *) et pas simplement un (CLLocationDirection) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top