let locationManager = CLLocationManager()
@IBOutlet var map: MKMapView!
func getLocation()-> CLLocation! {
self.locationManager.startUpdatingLocation()
sleep(1)
self.locationManager.stopUpdatingLocation()
var x = locationManager.location
return x
}
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
var mapCoord:CLLocation! = getLocation()
var mapLat:Double! = mapCoord.coordinate.latitude //Where the thread error is
var mapLong:Double! = mapCoord.coordinate.longitude
//Setup of the rest of the map is completed
Мой код, как указано выше, в Swift. Я получаю сообщение об ошибке:Обновление Текущий Местоположение
thread error of an unexpected nil value
при вызове для координат от функции getLocation()
. Я изменил и mapLat
, и mapLong
, чтобы проверить, что вызывает нуль. Мое приложение будет загружаться, но я получаю сообщение на выходе, что мое текущее местоположение не может быть обновлено, поскольку я не просил разрешения; однако у меня есть функция запросить разрешение в начале моего viewDiDLoad()
. Я использовал этот формат раньше в другом проекте, и он сработал, поэтому я знаю, что мне не хватает чего-то очевидного и т. Д. Спасибо за любую помощь.