Beim Versuch, den Längen- und Breitengrad eines Benutzers in Swift zu ermitteln, bin ich auf ein Problem gestoßen. Ich habe eine Schaltfläche, die eine Funktion ausführt, um die Koordinaten des Benutzers zu erhalten, beim ersten Drücken sollte es um Erlaubnis bitten, der App Ihren Standort zu geben. Aber das Problem, das ich habe, ist, dass dieses Popup automatisch geschlossen wird, direkt nachdem ich die Schaltfläche "Standort abrufen" gedrückt habe.Swift: Popup mit der Popup-Berechtigung bleibt geschlossen
Hier ist, was passiert: http://imgur.com/a/0wdnm
Hier ist mein Code:
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)
}
}
Bitte zeigen Sie den Code, wo Sie Ihre 'location' Klasseninstanz zuordnen. Es klingt wie es veröffentlicht wird, wenn es für die Dauer Ihrer App bleiben soll. Sie sollten darüber nachdenken, es zu einem Singleton – Paulw11
Ich liebe dich, @ Paulw11 – inigo333