Udało mi się zarejestrować region lub monitorowanie, wiem o tym, ponieważ metoda didStartMonitoringForRegion
została uruchomiona.iOS: CLLocationManager's didEnterRegion nie nazywane
mam prostą aplikację testową z jednym MKMapView
gdzie mogę zobaczyć moją aktualną lokalizację, ja też mam mój region narysowane na mapie jako czerwone kółko, więc może rzeczywiście „fizycznie” zobaczyć, w jakim punkcie jestem wejściu lub wyjściu ten region. W metodach didEnterRegion
i didExitRegion
mam uruchamiany UIAlertView
, który uruchamia się.
Jakiś czas temu zdecydowałem się opuścić biuro i pójść na spacer z moim iPhone 4, aby sprawdzić, czy to zadziała. Zacząłem w środku regionu (około 200 metrów), moja aplikacja była na pierwszym planie przez cały czas. Przeszedłem kilka przecznic i opuściłem region, nic się nie stało.
Czytam na SO (myślę), że czasami działa to tylko po wyjściu z regionu o określoną odległość, więc szłam dalej.
Po kolejnych 200m dałem sobie spokój, ponieważ UIAlertView
wciąż się nie wyświetlało i zacząłem chodzić z powrotem. Oczywiście, po ponownym wejściu do regionu, didEnterRegion
również nie strzelał.
Nie dzwonię pod numer [locationManager startUpdatingLocation]
w dowolnym miejscu, powinienem być ?? Naprawdę tylko tworzę region i dzwonię pod numer [locationManager startMonitoringForRegion]
.
CLLocationManagerDelegate
jest moim uczestnikiem aplikacji i wygląda na to, że mój telefon didStartMonitoringForRegion
jest prawidłowo uruchamiany.
Czy brakuje mi czegoś jeszcze?
Nie trzeba wywoływać opcji 'startUpdatingLocation'. Nie widzę problemu z tego, co mówisz. Może to pomaga, kiedy publikujesz jakiś kod. – Felix
Czy zweryfikowałeś, że wewnątrz regionu '[monitorRegion zawieraCoordinate: mapView.userLocation.location.coordinate]' jest prawdziwy, a poza tym jest fałszywy? – Felix
@ phix23 Właściwie to nie próbowałem, będę teraz, dzięki! – PaulG