didUpdateLocation Méthode ne s'est Jamais Appelé
Je fais un app sur iphone sdk4.0.Dans cette fait de mise à jour de la méthode de localisation ne s'est jamais appelé.
J'ai donné mon code ci-dessous.S'il vous plaît aider.Merci à l'avance.
-(id)init
{
[super init];
obj=[[UIApplication sharedApplication]delegate];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
//locationManager.distanceFilter = kCLDistanceFilterNone; //whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; //100 m
[locationManager startUpdatingLocation];
return self;
}
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%f",newLocation.coordinate.latitude);
NSLog(@"%f",newLocation.coordinate.longitude);
obj=[[UIApplication sharedApplication]delegate];
location=[[CLLocation alloc]initWithLatitude:newLocation.coordinate.latitude longitude:newLocation.coordinate.longitude];
obj.lattitude1=[NSString stringWithFormat:@"%f",newLocation.coordinate.latitude];
obj.longitude1=[NSString stringWithFormat:@"%f",newLocation.coordinate.longitude];
//location=[[CLLocation alloc]initWithLatitude:39.9883 longitude:-75.262227];
}
enfin, il a travaillé...je n'ai rien fait.je viens de faire un nouveau projet et copié dans toutes les classes.je ne sais pas comment?mais cela a fonctionné..
OriginalL'auteur Akshay Aher | 2011-03-21
Vous devez vous connecter pour publier un commentaire.
SALUT, vos codes d'semble ok.
maintenant ceux-ci peuvent être les raisons possibles :
sur votre init: essayez de vérifier si il n'y a locationServicesEnabled ou pas.
autre raison, vous pouvez interdire à obtenir l'emplacement de votre application.
solution: retirez simplement votre application à partir de l'iPhone et de re-construire, maintenant, il devrait fenêtre de dialogue pour Permettre à l'emplacement.
utiliser pour vérifier l'erreur
sinon tout semble ok,
vous étiez déjà en cours d'exécution ios 4.0 , qui peut être installé dans l'iPhone 3G et plus tard,
si c'était de l'iPhone 2g, alors, ce problème peut se produire.
OriginalL'auteur Mujah Maskey
En outre, dans iOS8, vous devez avoir deux choses supplémentaires:
Ajouter une touche à votre Info.plist et en demander l'autorisation du directeur des lieux, lui demandant de commencer.
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
Vous devez demander l'autorisation pour l'emplacement correspondant de la méthode.
[self.locationManager requestWhenInUseAuthorization]
[self.locationManager requestAlwaysAuthorization]
Exemple de Code:
Source: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/
OriginalL'auteur MarMass
Assurez-vous que vous avez ajouté CLLocationManager comme une propriété.
@property (nonatomic , fort) CLLocationManager *locationManager;
Merci beaucoup frère
Pourriez-vous me dire la raison ou explication au sujet de la propriété CLLocationManager et pourquoi ne pas travailler sans se trouve dans?
Parce que si c'est une propriété il une référence forte. Sans être une propriété, il obtient libéré en dehors de la méthode. Donc elle ne peut pas recevoir les rappels par le délégué. @user3182143
Merci Gabriel.Massana
OriginalL'auteur Gabriel.Massana
Si vous testez ce sur le simulateur, il ne fonctionnera pas.
Cela se produit parce que la méthode n'est appelée que lorsque l'appareil change de lieu (et le simulateur ne change jamais lieu).
Avez-vous essayé d'appeler pour l'emplacement actuel manuellement et assurez-vous d'avoir un emplacement valide? Vous pouvez faire cela en utilisant locationManager.emplacement.
Ce n'est pas vrai, vous pouvez simuler le mouvement maintenant.
Simulator -> Debug -> Location
OriginalL'auteur Zebs
Ne
-locationManager:didFailWithError:
dans votre délégué jamais appelé? Peut-être vous voir refuser l'accès à des données de localisation à un certain point, et maintenant ne pas obtenir de l'invité, mais l'accès vous est refusé.OriginalL'auteur visakh7
Après vous
alloc
etinit
votre emplacement manager, vérifiez si les services de localisation sont autorisés. Ce code est issu d'Apple "LocateMe" exemple de codeSi vous faites des tests avec le simulateur, essayez de tester avec un appareil à la place. Le simulateur nécessite que l'ordinateur WiFi est allumé, et qu'il peut localiser une station de base WiFi qui est dans la base de données de sites connus.
OriginalL'auteur nevan king