/ / CLLocationManager не спира / освобождава - iphone, objective-c, cllocationmanager

CLLocationManager не спира / освобождава - iphone, objective-c, cllocationmanager

Използвам 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 за отговор № 1

Има два начина за извличане на местоположението чрез услугите за местоположение: първият, по-малко точен, но по-приятен за батериите; и втората по-точна.

Когато декларирате [myLocationManager startMonitoringSignificantLocationChanges] вашият iPhone проверява за местоположение всеки път, когато напуснете клетъчна кула и влезете в нова. Когато декларирате [myLocationManager startUpdatingLocation] вашият iPhone проверява за местоположение всеки път, когато GPS открие промяна на местоположението (може би всеки 1-3 метра, в зависимост от точността).

Така е, в кода си се опитвате два пъти да спрете обявения мениджър на местоположението. Просто премахнете втората инструкция за спиране и ще получите правилния код:

CLLocationManager * MANG = [[CLLocationManager alloc] init];
[MANG startMonitoringSignificantLocationChanges];
if(MANG.location){
[mapa setCenterCoordinate:MANG.location.coordinate animated:NO];
}
[MANG stopMonitoringSignificantLocationChanges];
[MANG release];