16

w Objective C (nie mam doświadczenia z nim) można zainicjować obiektu CLLocation z szerokości i długości geograficznej lubi to:Inicjalizacja obiektu CLLocation w Swift z szerokości i długości geograficznej

CLLocation *myLocation = [[CLLocation alloc] initWithLatitude:your_latitiude_value longitude:your_longitude_value]; 

Ale jak mam to zrobić w Swift?

Próbowałem to,

let loc_coords = CLLocationCoordinate2D(latitude: your_latitiude_value, longitude: your_longitude_value) 

let loc = CLLocation().coordinate(loc_coords) 

Ale otrzymuję ten błąd:

nie może powoływać się na "koordynacji" z listy argumentów typu '(CLLocationCoordiate2D)'

muszę go mieć obiekt CLLocation, ponieważ chcę użyć metody distanceFromLocation w menedżerze locationManager.

Mam nadzieję, że możesz pomóc, dzięki!

Odpowiedz

21

Nie jestem w pobliżu mojego komputera Mac, aby go przetestować, ale poniższe elementy powinny działać. Wystarczy zdać łac i lon wartości do inicjatora CLLocaion tak:

let myLocation = CLLocation(latitude: your_latitiude_value, longitude: your_longitude_value) 

Dla porównania można sprawdzić documentation

+1

Tak, dostałeś to, a ty nacisnąłeś powrót zanim to zrobiłem (poszedłem i zweryfikowałem to na placu zabaw, więc jestem pewny, że to jest poprawne.) –

+0

Oczywiście, że to jest logiczne. Ale wielkie dzięki! –

8

Jeśli tylko chcesz to inicjator że trwa lat i długie, kod może wyglądać następująco:

let latitude: CLLocationDegrees = 37.2 
let longitude: CLLocationDegrees = 22.9 

let location: CLLocation = CLLocation(latitude: latitude, 
    longitude: longitude) 

Istnieją inne inicjalizatory które mają więcej parametrów, ale nie zapytać o nich.

+0

Dziękuję bardzo! –