Sono riuscito a registrare una regione o un monitoraggio, lo so perché è stato attivato il metodo didStartMonitoringForRegion
.iOS: didEnterRegion di CLLocationManager non chiamato
Ho una semplice app di prova con uno MKMapView
dove posso vedere la mia posizione corrente, ho anche disegnato la mia regione sulla mappa come un cerchio rosso in modo da poter effettivamente "fisicamente" vedere a che punto sto entrando o uscendo questa regione. Nei metodi didEnterRegion
e didExitRegion
ho un UIAlertView
che spara.
Poco fa ho deciso di lasciare l'ufficio e fare una passeggiata con il mio iPhone 4, per vedere se questo avrebbe funzionato. Ho iniziato nel bel mezzo della regione (che è di circa 200 metri nel raggio), la mia app è stata in primo piano per tutto il tempo. Ho camminato per un paio di isolati e sono uscito dalla regione, non è successo nulla.
Ho letto su SO (penso) che a volte funziona solo quando si esce dalla regione di una certa distanza, quindi ho continuato a camminare.
Dopo altri 200 m circa mi sono arreso perché il UIAlertView
non veniva ancora visualizzato e ho iniziato a tornare indietro. Ovviamente, al rientro nella regione, neanche lo didEnterRegion
sparava.
Non sto chiamando [locationManager startUpdatingLocation]
ovunque nel mio codice, dovrei essere ?? Sto solo creando la regione e chiamando lo [locationManager startMonitoringForRegion]
.
Il CLLocationManagerDelegate
è il delegato della mia app e sembra che il mio didStartMonitoringForRegion
stia funzionando correttamente.
Mi manca qualcos'altro?
Non è necessario chiamare 'startUpdatingLocation'. Non vedo un problema da quello che dici. Forse aiuta quando pubblichi del codice. – Felix
Hai verificato che all'interno della regione '[controlledRegion containsCoordinate: mapView.userLocation.location.coordinate]' è vero e all'esterno è falso? – Felix
@ phix23 In realtà non l'ho provato, lo farò adesso, grazie! – PaulG