При попытке получить долготу и широту пользователей в Swift я столкнулся с проблемой. У меня есть кнопка, которая запускает функцию для получения координат пользователя, при первом нажатии она должна запрашивать разрешение на предоставление приложению вашего местоположения. Но проблема, с которой я сталкиваюсь, заключается в том, что это всплывающее окно автоматически закрывается сразу после того, как я нажимаю кнопку «Получить местоположение».
Вот что происходит: http://imgur.com/a/0wdnm
Вот мой код:
class location: NSObject, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
internal func getLocation() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.authorizationStatus() == .AuthorizedAlways {
locationManager.startUpdatingLocation()
} else if CLLocationManager.authorizationStatus() == .NotDetermined {
locationManager.requestAlwaysAuthorization()
} else if CLLocationManager.authorizationStatus() == .Denied {
print("User denied location permissions.")
}
}
// MARK : CLLocationManagerDelegate protocol
@objc
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location: CLLocationCoordinate2D = (locationManager.location?.coordinate)!
print(location.latitude)
print(location.longitude)
}
}
location
. Похоже, что он выпускается, когда он должен оставаться на время вашего приложения. Вы должны подумать о том, чтобы сделать его синглтоном - person Paulw11   schedule 10.07.2016