Domanda

Mi chiedevo se qualcuno mi potrebbe indicare (o incollare in) del codice a che fare con lo spegnimento aggiornamenti Core Location per risparmiare energia.

Per quanto mi risulta, si dovrebbe smettere di aggiornamenti Core Location, non appena si ottiene una lettura di precisione desiderata. Se non si ottiene una lettura buona precisione dopo un certo tempo, si dovrebbe anche smettere di aggiornamenti (presumibilmente utilizzando un timer). Ogni volta che si ferma aggiornamenti, si dovrebbe sparare un timer (circa 60 secondi) per riavviare Core Localizzazione e ottenere una nuova lettura.

C'è codice di Apple, che fa tutto questo? I LocateMe, TaggedLocations e posizioni codice di esempio non sembrano farlo.

È stato utile?

Soluzione

L'esempio LocateMe ha il codice necessario. Hai solo bisogno di creare un secondo selettore a fuoco. LocateMe chiama il seguente in esso del metodo di configurazione ...

    [self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];

Si dice che dopo un certo periodo di tempo (kSetupInfoKeyTimeout), si prega di chiamare il metodo stopUpdatingLocation l'argomento di NSString = "scaduta". All'interno del metodo stopUpdatingLocation, il [locationManager stopUpdatingLocation] è chiamato a dire CoreLocation alla fermata.

Quindi, tutto quello che dovete fare è aggiungere un altro selettore del genere ...

[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];

all'interno del metodo stopUpdatingLocation, che chiamerà il metodo timeToRestartCoreLocation dopo 60 secondi. Poi all'interno del vostro metodo di timeToRestartCoreLocation, chiamata [locationManager startUpdatingLocation] per dare il via CoreLocation di nuovo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top