En mi caso, tuve la gerente de locación bajo una clase diferente y yo estaba llamando a esta clase del controlador principal. Esto no funcionaba y no se llamó a didUpdateLocations.
//
// LocationServices.h
//
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface LocationServices : NSObject <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@property (nonatomic, retain) CLLocationManager *locationManager;
- (void)startLocationServices;
@end
// LocationServices.m
#import "LocationServices.h"
@implementation LocationServices
@synthesize locationManager, currentLocation;
- (void)startLocationServices {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
if ([CLLocationManager locationServicesEnabled]) {
[locationManager startUpdatingLocation];
} else {
NSLog(@"Location services is not enabled");
}
}
////////////////////////////////////////////////
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
CLLocation* location = [locations lastObject];
NSLog(@"Updated: latitude %+.6f, longitude %+.6f\n",
location.coordinate.latitude,
location.coordinate.longitude);
}
@end
// Main controller
- (void)viewDidLoad {
[super viewDidLoad];
.....
LocationServices *locationSerices = [[LocationServices alloc]init];
[locationSerices startLocationServices];
......
}
El código anterior no funciona. ¿Por qué? No sé ... fácilmente puede perder interés cuando pasa tanto tiempo tratando de hacer algo que se supone que es simple. iOS es un entorno de programación muy complicado y antipático. Hay muchas maneras de hacer una cosa, solo una funciona, no se puede mezclar y combinar sin introducir un problema. Tienes que hacer todo por el libro o tú o no obtienes nada. Ni siquiera un indicio de que usted hizo algo mal ... frustrante ...
En cambio, cuando he implementado locationManager: (CLLocationManager *) didUpdateLocations Manager: en el controlador principal de todo funcionaba bien
Gracias por su consejo.Ahora estoy usando locationManager: didUpdateLocations: pero nunca se llama. La flecha de ubicación no aparece ... En iOS6 no puedo ver la aplicación que estoy desarrollando en la configuración -> privacidad -> ubicación. Además, ahora a veces obtengo este registro: purgeIdleCellConnections: encontré uno para purgar conn = 0x1d5d2250. A veces no. ¿Cualquier pista? ¡Gracias por adelantado! – Samui
Esto podría responder a su pregunta: http://stackoverflow.com/questions/12519733/location-services-not-working-in-ios-6 –
Ya tengo ambos identificadores de paquetes, pero el problema aún persiste :( – Samui