【发布时间】:2017-02-18 14:13:38
【问题描述】:
我遇到了一个奇怪的问题,它只发生在我的应用程序的第一次初始加载。首次加载应用程序后,我要求输入requestWhenInUseAuthorization()。发生这种情况后,即使我调用了正确的函数,数据也不会加载到视图上。
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
//Get UserDefault
let value = userDefaults.string(forKey: "Unit")
if value == nil {
userDefaults.set( "F", forKey: "Unit")
}
//Location Manager Setup
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startMonitoringSignificantLocationChanges()
tableView.delegate = self
tableView.dataSource = self
currentWeather = CurrentWeather()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
locationAuthStatus()
}
locationAuthStatus()
func locationAuthStatus() {
if CLLocationManager.authorizationStatus() == .authorizedWhenInUse {
currentLocation = locationManager.location
Location.sharedInstance.latitude = currentLocation.coordinate.latitude
Location.sharedInstance.longitude = currentLocation.coordinate.longitude
downloadWeatherDetails()
}
}
func downloadWeatherDetails() {
currentWeather.downloadWeatherDetails {
self.downloadForecastData {
self.updateMainUI()
}
}
}
一旦我进入设置视图控制器,进行更改,然后返回主视图,数据就会加载。有关如何处理此问题的任何建议?
【问题讨论】:
标签: ios swift swift3 cllocationmanager