0

我正在尝试很多方法来阻止我的应用程序的位置更新,但似乎没有任何效果......</p>

我做什么(关于帖子:StopUpdatingLocation 方法不适用于 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

所以该位置只更新了 1 次(顺便告诉我这是否是个好主意……)。

我也尝试在主代码中放置[locationManager stopUpdatingLocation];之前locationManager = nil;,但是在这两种情况下,我的位置的蓝点仍在我的地图上移动......</p>

我还设置了一个计时器,它locationManager在控制台中打印对象,同时它让我(null)的 iPhone 5 上的蓝点仍在移动,所以我不明白......</p>

或者可能因为另一件事,点仍在移动,但不是因为 locationManager 更新?

我当然错过了一些东西,但我没有得到什么:/。

感谢您的想法和帮助。

4

3 回答 3

4

一种可能性:地图上移动的蓝点是因为您将 MKMapView 设置showsUserLocation为“是”。它将跟踪,直到您将其设置为 NO。

另一种可能性:这条线是错误的:

locationManager = nil;

那不会停止监控,但确实会导致您无法参考位置管理器,所以现在您不能停止监控!剪掉那条线。

于 2013-05-06T15:16:34.277 回答
0

即使在我放置代码之后,我也面临同样的问题

[locationManager stopUpdatingLocation];
locationManager=nil;

我的应用程序正在使用 GPS 服务,这会不必要地消耗电池电量。这个问题的解决方法是关闭 MKMapView 的 showUserLocation 属性。

[self.mapView setShowsUserLocation:NO];

由于 MKMapView 继续使用你的GPS service,即使LocationManager是 nil。

希望对你有帮助

于 2013-05-06T15:29:37.613 回答
0

使用这行代码

[self.locationManager stopUpdatingLocation];
self.locationManager.delegate = nil;
self.locationManager = nil;

谢谢!

于 2016-06-07T05:27:05.790 回答