Pour obtenir l'emplacement que vous devez réellement « commencer » le gestionnaire de l'emplacement de l'utilisateur avant d'essayer de lire les informations de localisation. Je suggère que vous regardez échantillon LocateMe d'Apple.
LocateMe Exemple de code
En un mot, obtenir des informations de localisation de l'utilisateur peut être fait en deux étapes:
- (void)viewDidLoad {
[[self locationManager] startUpdatingLocation];
}
- (CLLocationManager *)locationManager {
if (locationManager != nil) {
return locationManager;
}
NSLog(@"%s, Creating new Location Manager instance.", __FUNCTION__);
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = DISTANCE_FILTER_VALUE;
locationManager.delegate = self;
return locationManager;
}
... et alors,
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"%s, location manager returned a new location.", __FUNCTION__);
// Check if location is valid (or good enough for us),
// and then process the location
if ([self locationIsValid:newLocation]) {
[self processLocation:newLocation];
// Very important! When your done with it, stop the location manager
[[self locationManager] sopUpdatingLocation];
// (Maybe even) clear it
locationManager.delegate = nil;
[locationManager release];
locationManager = nil;
}
}
J'espère que cela t'aides!