J'ai deux chaînes représentant la latitude et la longitude, comme: "-56.6462520", et je souhaite ensuite affecter un objet CLLocation à la comparaison avec mon emplacement actuel. J'ai essayé le code suivant, mais je ne reçois que des erreurs:
CLLocation * LocationAtual = [[CLLocation alloc]init];
LocationAtual.coordinate.latitude = @"-56.6462520";
LocationAtual.coordinate.longitude = @"-36.6462520";
puis comparez l'objet avec la latitude et la longitude de mon emplacement actuel. Aucune suggestion?
Je pense que vous devez:
LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue];
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue];
Vous ne pouvez pas affecter directement dans coordonnée - c'est une propriété en lecture seule de CLLocation.
Utilisez la méthode d'instance suivante:
- (instancetype)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude
exemple:
CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520];
Réponse rapide pour les paresseux:
var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520)
La coordonnée CLLocation est en réalité une valeur en lecture seule
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
La meilleure façon d’affecter des données factices aux coordonnées est donc la méthode AMITp.
la latitude et la longitude sont des valeurs doubles, il faut donc les attribuer de cette façon.
CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]]