Я не понимаю, почему серая стрелка GPS не исчезает после вызова stopUpdatingLocation. Вот мой код:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if (self.locationManager == nil)
{
self.locationManager = [[[CLLocationManager alloc] init]autorelease];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
}
CLLocation *location = [self.locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
g_lat = coordinate.latitude;
g_lng = coordinate.longitude;
[self.locationManager startUpdatingLocation];
}
И вот мой didUpdateLocation:
- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation: (CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Core location has a position.");
CLLocationCoordinate2D coordinate = [newLocation coordinate];
global_lat = coordinate.latitude;
global_lng = coordinate.longitude;
[self.locationManager stopUpdatingLocation];
}
- (void) locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
NSLog(@"Core location can't get a fix.");
}
Я также проверил, использует ли какое-либо другое приложение GPS! Через 20 минут Стрелка все еще там.... Спасибо за помощь!
ИЗМЕНИТЬ:
Я думаю, что пропустил что-то очень важное, при первом просмотре после запуска приложения есть карта Google! Это мой код:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:g_lat
longitude:g_lng
zoom:15];
self.mapView = [GMSMapView mapWithFrame:CGRectMake(1.0f, 160.0f, 320.0f, 100)
camera:camera];
self.mapView.delegate = self;
self.showsUserLocation = YES;
self.mapView.trafficEnabled = YES;
self.mapView.myLocationEnabled = YES;
self.mapView.settings.myLocationButton = YES;
self.mapView.settings.compassButton = YES;
[self.mapView setUserInteractionEnabled:YES];
[self.mapView setCamera:camera];
[self.containerView addSubview:self.mapView];
Возможно ли, что карта Google постоянно обновляется? Если да, то как я могу остановить это?
NSLog(@"%@", @"Core location can't get a fix.");
Можно просто написать:NSLog(@"Core location can't get a fix.");
Аргументы не нужны. - person allprog   schedule 28.08.2013myLocationEnabled
, когда нажимаете новый контроллер представления? Если нет, то это может поддерживать работу GPS. Вы можете попробовать это, не запуская GPS на следующем контроллере просмотра. Если GPS остается включенным, значит, карта его держит. - person allprog   schedule 28.08.2013