2017-02-16 5 views
-10

사용자로부터 잡아 당기는 위치와 하드 코딩 된 위치 사이의 거리를 찾으려고하지만 오류가 발생하여 [CLLocation]을 CLLocation으로 변환 할 수 없습니다. .[CLLocation]과 CLLocation의 차이점

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let location = CLLocationCoordinate2D(latitude: locations[0].coordinate.latitude, longitude: locations[0].coordinate.longitude) 
    longitude = locations[0].coordinate.longitude 
    latitude = locations[0].coordinate.latitude 
    let coordinate₀ = CLLocation(latitude: 5.0, longitude: 5.0) 

    let distanceInMeters = coordinate₀.distance(from: locations) 
    print(distanceInMeters) 
} 
+5

에 교체하는 것입니다'[CLLocation]'은'locations'에서 –

+0

액세스 마지막 개체 CLLocation''의 배열입니다 배열을 사용하여 사용자의 현재 위치를 가져옵니다. –

+0

고맙습니다. 나는 내가 이것을 깨닫지 못했다고 믿을 수 없다. –

답변

0

당신은 아래 라인에 location 대신 locations을 통과해야

let distanceInMeters = coordinate₀.distance(from: locations) 
0

[CLLocation] CLLocation의 배열, 그것은 나에게 보인다

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let location = CLLocationCoordinate2D(latitude: locations[0].coordinate.latitude, longitude: locations[0].coordinate.longitude) 
    let loc = locations[0] 
    longitude = loc[0].coordinate.longitude 
    latitude = loc[0].coordinate.latitude 
    let coordinate₀ = CLLocation(latitude: 5.0, longitude: 5.0) 

    let distanceInMeters = coordinate₀.distance(from: loc) 
    print(distanceInMeters) 
} 
1

아래 시도 너야 여전히 스위프트 언어의 기본을 이해하지 못합니다. 아마도 here으로 가서 Swift 문서를 먼저 읽어야합니다.

CLLocation 배열을 사용하는 반면 distance(from:) 함수는 하나의 CLLocation 인수를 사용합니다.

그것은 당신이 원하는 것을 보이는 것은 당신의

let distanceInMeters = coordinate.distance(from: locations) 

let distanceInMeters = coordinate.distance(from: location)