2017-02-16 56 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]'是'的CLLocation' –

+0

訪問的最後一個對象從'locations'數組數組獲取用戶的當前位置。 –

+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

在我看來,你仍然不瞭解Swift語言的基礎知識。也許你應該首先閱讀here並閱讀Swift文檔。

您正在使用CLLocation數組,而函數distance(from:)接受單個CLLocation的參數。

它看起來像你想要做的是,以取代

let distanceInMeters = coordinate.distance(from: locations) 

let distanceInMeters = coordinate.distance(from: location)