2011-09-16 8 views
6

La mia applicazione iPhone utilizza i servizi di localizzazione. Quando lo installo ed eseguo per la prima volta, mostra una finestra di dialogo che chiede se l'utente vuole consentire l'uso dei servizi di localizzazione per un momento e scompare immediatamente. Questo accade alcune volte di seguito.La finestra di dialogo che chiede se l'utente vuole consentire l'uso dei servizi di localizzazione compare e scompare in iPhone

È un bug noto o sto facendo qualcosa di sbagliato?

+0

Puoi postare parte del codice che utilizza il Location Manager? – chown

risposta

13

Ho avuto lo stesso problema nella mia app proprio ora, aggiungerò questo come una risposta per chiunque domandi la domanda e si imbatte in questa vecchia domanda.

Il problema è che se installi il CLLocationManager localmente e chiedi di aggiornare la sua posizione, la finestra che chiede l'autorizzazione scompare immediatamente dopo che si apre.

Devi rendere CLLocationManager una proprietà (o almeno non dovresti installarlo localmente), quindi funziona.

+0

Avuto lo stesso problema, questa risposta ha aiutato –

+0

Hai ragione: è perché la variabile locale non è referenziata da nessun'altra parte e quindi ARC lo rilascerà e verrà deallocato, facendo scomparire la finestra di dialogo. Pertanto, rendere CLLocationManager una proprietà o una variabile di istanza. –

0

Sembra il sistema operativo che ti chiede di approvare l'uso dei servizi di localizzazione per l'app. Non sono a conoscenza di problemi in sospeso che potrebbero impedire di chiudere e riaprire il modo in cui descrivi. Per quanto ne so, non hai alcun controllo su questo, verrà visualizzato automaticamente quando l'app attiva un metodo basato sulla posizione (ad esempio -startUpdatingLocation o -startMonitoringForRegion).

È possibile che sia presente un'altra vista in conflitto che tenta di rubare la vista dall'avviso OS, ma senza codice, sarebbe difficile dirlo. Spero che questo ti aiuti.

+0

Sì, questo è esattamente quello che succede. Il problema è che ho diverse viste in cui utilizzo i servizi di localizzazione, ma nessuno di essi funziona sul carico dell'applicazione. La vista principale e prima che carichi non utilizza i servizi di localizzazione. – Misha

+0

Vorrei pensare a disabilitare la tua posizione in ogni punto, e lavorare per aggiungerli uno alla volta fino a individuare chi ti sta dando problemi. È possibile ripristinare il simulatore alle impostazioni di fabbrica e ripristinare il trigger dei servizi di localizzazione per l'app. Questo dovrebbe aiutarti a provarlo. –

Problemi correlati