Comment obtenir de l'emplacement actuel de la latitude et de longitude dans le SDK IOS 8.0
comment obtenir de l'emplacement actuel de la latitude et de la longitude.
J'ai essayer ça. En utilisant Xcode 6.01 et IOS SDK 8.0
-(CLLocationCoordinate2D) getLocation{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
return coordinate;
}
- (void)getCurrentLocation{
CLLocationCoordinate2D coordinate = [self getLocation];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];
NSLog(@"Latitude = %@", latitude);
NSLog(@"Longitude = %@", longitude);
}
- (void)viewDidLoad{
[super viewDidLoad];
[self getCurrentLocation];
}
Ici, j'ai activer le simulateur emplacement de Déploiement 8.0 simulateur d'iPhone 4s.
Même sur l'appareil ne fonctionne pas.
@TOUS
S'il vous plaît laissez-moi savoir, ce que j'ai fait de mal ici.
OriginalL'auteur KkMIW | 2014-10-01
Vous devez vous connecter pour publier un commentaire.
Je l'ai trouver question dans IOS 8.0
NSLocationAlwaysUsageDescription ajouter manuellement dans l'application fichier plist, laissez la valeur de chaîne vide.
Ce qu'il va appeler le délégué de méthodes. Ne jamais oublié l'ajout de NSLocationAlwaysUsageDescription à moins que vous ne l'ajoute pas ce délégué méthode ne fonctionnera pas. Reste du code est le même. avec l'ajout de délégué méthodes de contrôleur de classe.
ajouter cette ligne de code dans locationManager code de déclaration. pour IOS 8.0
[locationManager requestAlwaysAuthorization];
OriginalL'auteur KkMIW
Dans iOS 8, cette code échoue silencieusement je.e, vous n'aurez pas d'erreur ou d'avertissement.
Vous devez faire deux choses en plus pour obtenir la localisation de travail:
Une ou deux clés ci-dessous doit être ajouté dans l'Info.fichier plist.
Ce sont de type Chaîne de caractères et la valeur peut être n'importe quel message de description ou de vide.
Maintenant, vous devez demander l'autorisation pour l'emplacement correspondant de la méthode. Utilisez l'une de ci-dessous appelle :
OriginalL'auteur Jayprakash Dubey
Oui, le simulateur offre une sur-simplification du rendu des services de localisation. Un dispositif physique est le seul moyen de vraiment tester
CLLocationManager
comportement.Le problème est que lorsque vous appelez
startUpdatingLocation
, cela ne signifie pas que vous pouvez récupérer immédiatement lelocation
. (Je pense que vous trouverez que c'est soitnil
ou négatifhorizontalAccuracy
, ce qui signifie que l'emplacement n'a pas encore été déterminée.)Vous devez vous conformer à la
CLLocationManagerDelegate
, et de mettre en œuvrelocationManager:didUpdateLocations:
, qui est appelé de manière asynchrone. Donc, vous avez à attendre pour que cette méthode soit appelée avant d'essayer d'utiliser les informations de localisation. Et, à noter, sur un véritable appareil, vous aurez probablement voir cette méthode est appelée à un certain nombre de fois que l'appareil optimise le dispositif de localisation de l'information, avec l'augmentation de la précision (par exemple, vous pouvez voir l'horizontalAccuracy
nombre chute à partir d'un emplacement de mise à jour à l'autre).Évidemment, vous voulez probablement mettre en œuvre
locationManager:didFailWithError:
, trop, de sorte que les problèmes peuvent être détectés. Vous devriez également vérifierauthorizationStatus
,locationServicesEnabled
, et d'appelerrequestWhenInUseAuthorization
, avant d'appelerstartUpdatingLocation
.OriginalL'auteur Rob
Il semble que nous devons faire un peu plus la tâche de mettre en œuvre les services de localisation dans ios8.
suivre cette discussion
s'il vous plaît ajouter CLLocationManagerDelegate dans votre .h fichier comme ceci @interface DemoViewController : UIViewController<CLLocationManagerDelegate>
J'ai ajouté CLLocationManagerDelegate, j'ai toujours problème. il ya quelque chose de mal après la mise à jour du sdk IOS 7 à IOS 8.
OriginalL'auteur Samin