Obtenez de l'utilisateur de l'emplacement actuel sur MKMapView
Je suis en train d'essayer d'obtenir à l'utilisateur courant de la dernière localisation sur la didUpdateToLocation:newLocation:fromLocation:oldLocation:
méthode et de le stocker dans mon ivar CLLocation *userCurrentLocation
J'obtiens cette erreur quand j'ai essayé de lire userCurrentLocation
-[NSCFNumber coordinate]: unrecognized selector sent to instance 0x586b220
- (void) locationManager:(CLLocationManager *) manager
didUpdateToLocation:(CLLocation *) newLocation
fromLocation:(CLLocation *) oldLocation {
fromLocation:(CLLocation *) oldLocation {
if (oldLocation == nil) { //first time loading?
SVGeocoder *geocodeRequest = [[SVGeocoder alloc]
initWithCoordinate:CLLocationCoordinate2DMake(newLocation.coordinate.latitude, newLocation.coordinate.longitude)];
[geocodeRequest setDelegate:self];
[geocodeRequest startAsynchronous]; //reverse geocoding to get annotation coordinates to be placed.
[geocodeRequest release];
isCurrentLocation = YES; //flag that next annotation placed is current location
}
userCurrentLocation = newLocation;
NSLog(@"didUpdateToLocation - Lat:%f Long:%f", userCurrentLocation.coordinate.latitude, userCurrentLocation.coordinate.longitude); //verified that userCurrentLocation latitude is correct at this point.
}
Bouton de barre d'outils pour afficher le nom d'utilisateur actuel emplacement
-(IBAction) showLocation:(id) sender {
NSLog(@"Lat:%f Long:%f", userCurrentLocation.coordinate.latitude, userCurrentLocation.coordinate.longitude); //crashes upon calling this statement. Why?
NSLog(@"Show Location Called");
SVGeocoder *geocodeRequest = [[SVGeocoder alloc]
initWithCoordinate:CLLocationCoordinate2DMake(userCurrentLocation.coordinate.latitude, userCurrentLocation.coordinate.longitude)];
[geocodeRequest setDelegate:self];
[geocodeRequest startAsynchronous];
[geocodeRequest release];
}
Je n'ai définissez la propriété et de synthétiser userCurrentLocation en tant que tel:
MapViewController.h
@interface MapViewController : UIViewController <CLLocationManagerDelegate, MKMapViewDelegate> {
CLLocation *userCurrentLocation;
}
@property (nonatomic, retain) CLLocation *userCurrentLocation;
@end
MapViewController.m
@synthesize userCurrentLocation;
/* EDITED */
- (void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
userCurrentLocation = [[CLLocation alloc] init];
}
OriginalL'auteur Gavin | 2011-08-29
Vous devez vous connecter pour publier un commentaire.
Votre
userCurrentLocation
est autoreleased après la- (void) locationManager:(CLLocationManager *) manager didUpdateToLocation:(CLLocation *) newLocation fromLocation:(CLLocation *) oldLocation
méthode terminé.Essayez d'utiliser
self.userCurrentLocation = newLocation;
à la place.OriginalL'auteur xuzhe
SVGeocoder
) en dehors de AppleMKReverseGeoder
. Tout fonctionne bien, juste qu'il me semble que la lecture de lauserCurrentLocation
objet à l'intérieur de la IBAction bloque l'application et je ne peux pas compris pourquoi.je pense que vous êtes de ne pas obtenir de l'actuel emplacement de l'utilisateur.c'est pourquoi l'application crash.
OriginalL'auteur Ron
C'est le code pour UIPageControl dans UIScrollView
nous voici à l'aide de délégué de UIScrollView
OriginalL'auteur Aneesh Sharma
}
OriginalL'auteur Abo3atef