2009-09-01 5 views
3

Je veux extraire une liste de coordonnées d'une base de données dans un tableau (avant de les afficher sur une carte). Cependant, dans la base de données, ils sont de type Number, et je n'arrive pas à comprendre comment les convertir en coordonnées.Convertir NSNumber en CLCoordinate

Cela ne fonctionne pas: Où j'ai un objet ATM (les coordonnées sont pour les machines atm) avec NSNumbers pour la latitude et la longitude. Ceci est dans une boucle avec index i, afin de les sortir un par un. L'atmsArray a déjà été chargé.

ATM *aATM = [self.atmsArray objectAtIndex:i]; 


CLLocationCoordinate2D coord=[[CLLocationCoordinate2D alloc] initWithLatitude:(CLLocationDegrees)aATM.Latitude longitude:(CLLocationDegrees)aATM.Longitude]; 

Indique les erreurs: -CLLocationCoordinate2D est pas un nom de classe ObjectiveC ou alias valeur -pointer utilisée lorsqu'une valeur de virgule flottante était attendue valeur -pointer utilisée lorsqu'une valeur de virgule flottante était attendue

J'ai essayé plusieurs choses mais je n'arrive pas à comprendre. Si plus d'informations sont nécessaires, s'il vous plaît faites le moi savoir.

Répondre

6

ce que vous voulez est ceci:

CLLocationCoordinate2D coord; 
coord.longitude = (CLLocationDegrees)aATM.Longitude; 
coord.latitude = (CLLocationDegrees)aATM.Latitude; 
14

aAtm.Longitude et aAtm.Latitude sont NSNumbers qui sont des pointeurs et en tant que tels ne peuvent pas être jetés à CLLocationDegrees. Vous devez utiliser les valeurs doubles des NSNumbers.

CLLocationCoordinate2D coord; 
coord.longitude = (CLLocationDegrees)[aATM.Longitude doubleValue]; 
coord.latitude = (CLLocationDegrees)[aATM.Latitude doubleValue]; 

As per this answer