我有一个视图,有一个地图视图的子视图。我使用 CLLocationManager 来获取当前位置并显示在地图上。然后当视图即将关闭时,我执行以下操作
_mapView.delegate = nil;
_mapView = nil;
[_locationManager stopUpdatingLocation];
_locationManager.delegate = nil;
_locationManager = nil;
但是状态栏上的定位服务(GPS)指示灯仍然没有消失。当应用程序进入后台然后返回前台时,它会等待指示器显示在状态栏上,然后再激活。
指标仍然存在有什么原因吗?
编辑 - 以下是 CLLocationManager 的初始化和启动方式
if (_locationManager == nil) {
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
_locationManager.distanceFilter = kCLDistanceFilterNone;
[_locationManager startUpdatingLocation];
}
以下是我如何停止它
if (_locationManager != nil) {
[_locationManager stopUpdatingLocation];
_locationManager.delegate = nil;
_locationManager = nil;
}