Comment obtenir la Localisation de l'utilisateur avec CLLocationManager dans swift?
J'ai ce code sur mon point de vue, contrôleur, mais cela ne fonctionne pas:
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
var location: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
location=CLLocationManager()
location.delegate = self
location.desiredAccuracy=kCLLocationAccuracyBest
location.startUpdatingLocation()
}
func locationManager(location:CLLocationManager, didUpdateLocations locations:AnyObject[]) {
println("locations = \(locations)")
label1.text = "success"
}
J'ai les autorisations comment je l'ai lu dans d'autres post. mais je n'ai pas l'obtenir jamais, aucun println..
Merci!!
Cela fonctionne pour moi Ses un simple exemple, Voir: stackoverflow.com/a/35973586/3410437
OriginalL'auteur user3745888 | 2014-06-16
Vous devez vous connecter pour publier un commentaire.
d'abord ajouter ce que deux lignes dans un fichier plist
1)
NSLocationWhenInUseUsageDescription
2)
NSLocationAlwaysUsageDescription
Puis c'est la classe de travail complet de mettre en œuvre cette
s'il vous plaît vérifier vos paramètres > yourapp > emplacement de l'autorisation
'locationServicesEnabled' n'est pas disponible: Api obsolète depuis iOS 7 et les versions antérieures ne sont pas disponibles dans Swift
+ terminant avec uncaught exception de type NSException. Comment résoudre ce problème?
Pourquoi avez-vous besoin de mettre le code dans l'AppDelegate classe?
OriginalL'auteur
Sont les suivantes étapes simples pour obtenir l'emplacement de l'utilisateur dans Swift 3
1) d'Abord, ajoutez cette ligne dans un fichier plist avec description
2) Ajouter CoreLocation.cadre de votre projet(en Vertu de l'article Phases de construction-> Lien Binaire Avec la Bibliothèque)
3) Dans AppDelegate classe
4) Créer locationManager Objet comme suit
5) Écrire de code suivant dans didFinishLaunchingWithOptions
6) Confirmer CLLocationManagerDelegate délégué comme suit
7) Écrire CLLocationManagerDelegate délégué méthode pour obtenir l'emplacement de l'utilisateur
OriginalL'auteur
Puisque vous êtes déclarant emplacement comme un explicitement déballé en option (CLLocationManager!) il nécessite un initialiseur, soit dans une méthode init comme suggéré par jhurray, ou simplement en ligne, que:
Note que vous avez d'autres problèmes possibles, y compris le fait qu'iOS 8 a de nouvelles exigences pour l'interrogation de l'utilisateur l'autorisation d'utiliser CoreLocation. Voir ce question pour plus d'informations.
Vérifiez l'autre lien et assurez-vous que vous êtes tous les deux faire de la
requestWhenInUseAuthorization/requestAlwaysAuthorization
appel et le réglage de la touche de droite dans l'Info.plist.vérifiez également que votre faire les appels vers la droite pour démarrer le gestionnaire.OriginalL'auteur
Vous avez besoin d'avoir des fonctions d'initialisation.
Remplacer init(coder:) et init(nibName: bundle:) et ajoutez tous les init vous le souhaitez.
Parce que vous avez dit que l'emplacement n'est pas une option, vous devez l'initialiser avant de votre super init appels dans TOUTES vos fonctions d'initialisation.
OriginalL'auteur
Il devrait être écrit comme
func locationManager(directeur: CLLocationManager, didUpdateLocations emplacements: [CLLocation]) {
OriginalL'auteur
Faire à la suite des choses dans viewcontroller [swift] -
//MARQUE: CLLocationManagerDelegate méthodes
//MARQUE: MKMapViewDelegate
OriginalL'auteur