我正在尝试很多东西来停止我的应用程序的位置更新,但似乎没有任何工作......
我的所作所为(关于帖子:StopUpdatingLocation method not working for iOS5):
// Initialise my locationManager and start monitoring :
locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
// .. Some code to use the coordinates that locationManager gives me.
// To stop monitoring :
locationManager = nil;
你必须知道我在方法中放置了[locationManager stopUpdatingLocation];
:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
所以位置只更新一次(顺便告诉我这是不是一个好主意......)。
我还尝试在[locationManager stopUpdatingLocation];
之前将locationManager = nil;
放在主代码中,但在这两种情况下,给我位置的蓝点仍然在我的地图上移动......
我还设置了一个在控制台中打印locationManager
对象的计时器,它给了我(null)
同时蓝点仍然在我的iPhone 5上移动所以我不明白... < / p>
或许点还在移动,因为另一件事,但不是因为locationManager更新?
我当然错过了一些东西,但我得不到什么:/。
感谢您的想法和帮助。
答案 0 :(得分:4)
一种可能性:地图上移动的蓝点是因为您将MKMapView的showsUserLocation
设置为YES。它将跟踪,直到您将其设置为NO。
另一种可能性:这一行错了:
locationManager = nil;
那不停止监控,但 导致您无法引用位置管理器,所以现在无法停止监控!切断那条线。
答案 1 :(得分:0)
即使我放置了代码
,我也遇到了同样的问题[locationManager stopUpdatingLocation];
locationManager=nil;
我的应用程序使用GPS服务,这不一定消耗电池电量。此问题的解决方案是关闭MKMapView的showUserLocation属性。
[self.mapView setShowsUserLocation:NO];
由于即使GPS service
为零,MKMapView仍继续使用LocationManager
。
希望它能帮到你
答案 2 :(得分:0)
使用以下代码行
[self.locationManager stopUpdatingLocation];
self.locationManager.delegate = nil;
self.locationManager = nil;
谢谢!