2011-10-26 16 views
20

Tengo dos cadenas que representan latitud y longitud como: "-56.6462520", y quiero asignarlas a un objeto CLLocation para compararlas con mi ubicación actual. Intenté con el siguiente código pero recibí errores solamente:Cadena a CL Ubicación latitud y longitud

CLLocation * LocationAtual = [[CLLocation alloc]init]; 
LocationAtual.coordinate.latitude = @"-56.6462520"; 
LocationAtual.coordinate.longitude = @"-36.6462520"; 

y luego compare el objeto con mi ubicación real de latitud y longitud. ¿Alguna sugerencia?

+6

Objective-C es la convención de nombres de camelCase var. –

Respuesta

11

creo que es necesario:

LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue]; 
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue]; 
+0

Tengo el punto, creo que la conversión es correcta, pero estoy recibiendo este error: "Lvaule requerido como operando de asignación izquierdo" ... –

+1

http://stackoverflow.com/questions/5527878/lvalue-required-as- left-operando-de-asignación –

+2

No puedo eliminar una respuesta aceptada, pero acepto que la respuesta de AmitP es correcta. Mi respuesta fue como "no se puede usar una cadena como número" –

101

No se puede asignar directamente en coordinar - es una propiedad de sólo lectura de CLLocation.
Utilice el método siguiente ejemplo:

- (instancetype)initWithLatitude:(CLLocationDegrees)latitude 
         longitude:(CLLocationDegrees)longitude 

ejemplo: coordinar

CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520]; 
+1

Es cierto, no se puede asignar a los atributos CLLocation. –

+0

La respuesta anterior era incorrecta. Este es el correcto. – hook38

2

CLLocation es en realidad un solo lectura valor

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

Así que la mejor manera de asignar datos ficticios de coordenadas es AMITp forma

1

latitud y longitu de son valores dobles, así que deben asignarse de esta manera.

CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]] 
6

respuesta Swift para los perezosos:

var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520) 
+1

El perezoso gracias. :RE – PruitIgoe

Cuestiones relacionadas