我正在使用MKMapView并使用CLLocationManager在最后一个已知位置启动地图,问题是iPhone和位置服务报告我在完成后仍在使用这些服务,这引起了对电池的一些担忧的使用。
所以,请帮我正确发布。
CLLocationManager * MANG = [[CLLocationManager alloc] init];
[MANG startMonitoringSignificantLocationChanges];
if(MANG.location){
[mapa setCenterCoordinate:MANG.location.coordinate animated:NO];
}
[MANG stopMonitoringSignificantLocationChanges];
[MANG stopUpdatingLocation];
[MANG release];
答案 0 :(得分:0)
有两种方法可以使用位置服务获取位置:第一种方法,不太准确,但电池更友好;而第二个更准确。
当您宣布[myLocationManager startMonitoringSignificantLocationChanges]
每次离开手机信号塔并进入新手机时,iPhone会检查位置。
每当GPS检测到位置变化时(每个可能每1-3米,具体取决于准确度),当您宣布[myLocationManager startUpdatingLocation]
iPhone检查位置时。{/ p>
所以问题是,在您的代码中,您试图两次停止声明的位置管理器。只需删除第二个停止指令,您就会得到正确的代码:
CLLocationManager * MANG = [[CLLocationManager alloc] init];
[MANG startMonitoringSignificantLocationChanges];
if(MANG.location){
[mapa setCenterCoordinate:MANG.location.coordinate animated:NO];
}
[MANG stopMonitoringSignificantLocationChanges];
[MANG release];