Emplacement vérification d'autorisation et l'autorisation
Je veux que mon programme pour l'affichage de la position sur la carte. C'est en travaillant au premier au hasard, puis arrêté et j'ai ajouté le code ci-dessous pour essayer de le réparer, mais je vais avoir des problèmes. Merci à l'avance!
override func viewDidLoad()
{
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.locationServicesEnabled()
{
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
if status == CLAuthorizationStatus.NotDetermined
{
locationManager.requestAlwaysAuthorization()
}
} else {
print("locationServices disenabled")
}
locationManager.startUpdatingLocation()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
mapView.delegate = self
centerMapOnLocation(initialLocation)
addBoundry()
}
Quels problèmes avez-Vous?
Nous avons besoin de plus d'informations sur les problèmes auxquels vous êtes confrontés. Aussi, je remarque qu'il y a 2 appels à 'startUpdatingLocation de la méthode des 'locationManager'.
Avez-vous mis le champ requis dans info.plist?
C'est l'erreur que je reçois: "Essayez de démarrer MapKit emplacement des mises à jour sans intervention de l'emplacement de l'autorisation. Devez appeler -[CLLocationManager requestWhenInUseAuthorization] ou -[CLLocationManager requestAlwaysAuthorization] en premier."
Nous avons besoin de plus d'informations sur les problèmes auxquels vous êtes confrontés. Aussi, je remarque qu'il y a 2 appels à 'startUpdatingLocation de la méthode des 'locationManager'.
Avez-vous mis le champ requis dans info.plist?
C'est l'erreur que je reçois: "Essayez de démarrer MapKit emplacement des mises à jour sans intervention de l'emplacement de l'autorisation. Devez appeler -[CLLocationManager requestWhenInUseAuthorization] ou -[CLLocationManager requestAlwaysAuthorization] en premier."
OriginalL'auteur Steve | 2016-08-02
Vous devez vous connecter pour publier un commentaire.
Vous appeler,
ainsi
endroit de douceur en premier plan!!!
et vous ne devriez pas avoir besoin de deux instance d'appel
startupdatinglocation
. gardez-en un. vous devez utiliser l'instance ou la variable globale au lieu de local pour obtenir de l'emplacement tout au long de la portée.Mise à jour :
Vous devez définir deux touches en
info.plist
comme,NSLocationAlwaysUsageDescription
etNSLocationWhenInUseUsageDescription
avec une description de l'utilisation.Vérifier ma mise à jour en réponse!!
Je suis arriver à un point de rupture où j'ai le demande maintenant
Vous ne pouvez pas laisser ces plist descriptions vide plus.
Ouais! Nous ne pouvons pas laisser le champ vide dans les dernières mises à jour. Mise à jour de réponse. Merci pour la suggestion!
OriginalL'auteur Lion
J'ai eu le même problème, même avec
NSLocationAlwaysUsageDescription
etNSLocationWhenInUseUsageDescription
mis en info.plist. Mon debugger me dit de régler égalementNSLocationAlwaysAndWhenInUseUsageDescription
...donc je l'ai fait. Il a travaillé!OriginalL'auteur Chris Ashton
Si vous voulez que le "WhenInUse" notification vous devez seulement ajouter de la "protection des renseignements personnels Emplacement Lors De l'Utilisation, une Description de l'Utilisation" dans votre info.plist mais si vous voulez que le "Toujours" accès à vos informations.plist devrait ressembler à cette info.plist capture d'écran:
Vous n'avez pas à ajouter toute demande d'autorisation comme requestAlwaysAuthorization ou requestWhenInUseAuthorization
OriginalL'auteur Blue1905