2017-02-16 4 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)

Смежные вопросы