2016-01-15 3 views
-1

В настоящее время я пытаюсь создать приложение погоды. Он использует API http://developer.forecast.io, который принимает координаты долготы и широты, чтобы найти погоду. У меня реализован OneShotLocationManager, но я не могу получить из него координаты, а затем использовать их с помощью API Forecast.Получение координат местоположения пользователя (OneShotLocationManager)

Вот мой код:

var manager: OneShotLocationManager? 
let coordinate: (lat: Double, long: Double) = (0,0) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    manager = OneShotLocationManager() 
    manager!.fetchWithCompletion { location, error in 

     // fetch location or an error 
     if let loc = location { 
      print(location?.coordinate.latitude) 
      print(location?.coordinate.longitude) 
      let coordinate: (lat: Double, long: Double) = ((location?.coordinate.latitude)!,location!.coordinate.longitude) 
     } else if let err = error { 
      print(err.localizedDescription) 
     } 

     self.manager = nil 

    } } 

я могу получить OneShotLocationManager напечатать координаты на консоли, но я не могу понять, как на самом деле использовать их с Forecast.io. Любая помощь по этому вопросу будет принята с благодарностью.

+1

нормально, у вас есть свои координаты, теперь вы должны сделать запрос для данных в API. Я не вижу этот код здесь. –

+0

@HugoAlonso Это не проблема. Я понял это. Он принимает координаты из «координатной» переменной. Мне нужно выяснить, как сохранить координаты пользователя в переменной «координат». – Insleep

ответ

1

Вам больше не нужно использовать местоположение var, по этой причине вы делаете отметку if let. Попробуйте это:

if let loc = location { 
    let coordinate = (lat: loc.coordinate.latitude, long: loc.coordinate.longitude) 
    // ...your web API request stuff using coordinate.... 
} 
+0

Спасибо! Это сработало отлично! – Insleep