Zasadniczo połowa czasu metoda pełnomocnikCLLocationManager nie działa cały czas (iOS 8 Xcode 6)
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
nie jest wywoływana w ogóle. Ale druga połowa czasu działa idealnie! Zauważyłem, że zwykle dzieje się to po pierwszym uruchomieniu Xcode po zamknięciu i zamknięciu go, ale po tym lub po kilku działa, wydaje się, że działa dobrze. Nie jestem w 100% pewien, czy to tylko problem z Xcode, czy niedługo dostanę licencję programisty, więc sprawdzę, czy będzie działać poprawnie na prawdziwym urządzeniu.
Począwszy od viewDidAppear (próbuje w viewDidLoad też, nie ma różnicy), biegnę metodę init mój locationManager rzeczy:
locationManager = [[CLLocationManager alloc]init];
[locationManager setDelegate:self];
locationManager.distanceFilter = 20.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.pausesLocationUpdatesAutomatically = NO;
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
Czasami to działa, czasami nie. Zrobiłem nawet timer, żeby ponownie uruchomić to co sekunda, a to nie działa.
Czy jest coś jeszcze, co powinienem zrobić? Czy istnieje jakaś odpowiedź na ten problem?
Dzięki.
Menedżer lokalizacji jest przeznaczony do pracy z urządzeniem. Czy w symulatorze próbowałeś ustawić lokalizację? – Milo
Co masz na myśli przez połowę czasu *? 'didUpdateLocations' jest wywoływane, gdy system operacyjny ma aktualizacje lokalizacji do dostarczenia. Czasem tak się dzieje, innym razem (rzadziej) tak nie jest. – Mike
Niewiele rzeczy, czy masz "NSLocationAlwaysUsageDescription" załadowany do pliku info.plist aplikacji? Dwóch ustawiłeś lokalizację w symulatorze? (Debugowanie-> Lokalizacja) – TyloBedo