2011-10-26 18 views
20

Mam dwa ciągi reprezentujące szerokość i długość geograficzną, takie jak: "-56.6462520", i chcę przypisać następnie do obiektu CLLocation w celu porównania z moją bieżącą lokalizację. Próbowałem następujący kod, ale dostaję błędy only:Łańcuch do szerokości i szerokości geograficznej CLLocation

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

, a następnie porównaj obiekt z moją rzeczywistą lokalizacją długości i szerokości geograficznej. Jakieś sugestie?

+6

Objective-C konwencja jest camelCase nazw Var. –

Odpowiedz

11

Chyba trzeba:

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

Mam rację, myślę, że konwersja jest poprawna, ale otrzymuję ten błąd: "Wymagany był Lvau jako lewy operand przypisania" ... –

+1

http://stackoverflow.com/questions/5527878/lvalue-required-as- left-operand of assignment –

+2

Nie mogę usunąć zaakceptowanej odpowiedzi, ale zgadzam się, że odpowiedź AmitP jest poprawna. Moja odpowiedź brzmiała: "nie można użyć ciągu jako liczby" –

101

Nie można przypisać bezpośrednio do koordynować - jest to właściwość tylko do odczytu CLLocation.
Użyj następującej metody instancji:

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

przykład: współrzędna

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

To prawda, nie można przypisać atrybutów CLLocation. –

+0

Poprzednia odpowiedź była niepoprawna. To jest poprawne. – hook38

2

CLLocation jest faktycznie tylko do odczytu wartość

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

Więc najlepszym sposobem, aby przypisać dane manekina do współrzędnych jest Droga AMITp

1

szerokość i długość geograficzna de są podwójnymi wartościami, więc trzeba je przypisać w ten sposób.

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

Swift Odpowiedź dla leniwych:

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

Leniwe podziękowanie. :RE – PruitIgoe

Powiązane problemy