Chcę uzyskać bieżącą lokalizację, ale zamiast tego pojawia się błąd.
To jest fragment mojego kontrolera widoku.
- (void)viewDidLoad {
self.locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray<CLLocation *> *)locations {
// I would get the latest location here
// but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {
NSLog(@"didFailWithError: %@", error);
}
Oczekuję, że metoda delegata locationManager:didUpdateLocations:
zostanie wywołana, ale zamiast tego locationManager:didFailWithError:
jest wywoływana i drukuje to:
didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"
Apple
. jeśli masz to ustawionenone
to nie zadziała i wyrzuci ten błąd., zrobiłem to przypadkiemOdpowiedzi:
Sprawdź, czy faktycznie masz prawidłowe połączenie WiFi i 3G
... jeśli tak, to:
Przejdź do ustawień i zresetuj usługi lokalizacyjne
To powinno rozwiązać ten problem. Jest to związane z urządzeniem / siecią, a nie aplikacją. Jest to denerwujące, zwłaszcza jeśli Twoja aplikacja jest zależna od usług lokalizacyjnych, a urządzenie obsługuje tylko Wi-Fi, a ludzie wystawiają negatywne oceny w AppStore ... Przepraszam, robię się tam trochę emocjonalnie.
źródło
Jeśli korzystasz z symulatora:
command + shift + ,
w Xcode, aby otworzyć edytor schematówAllow Location Simulation
Wybór
None
lokalizacji domyślnej mógł spowodować problem.źródło
iOS Simulator
>Reset Content and Settings...
Po prostu zignoruj ten błąd i poczekaj na więcej aktualizacji lub inny błąd.
Dokumentacja menedżera lokalizacji podaje, że ten błąd jest tymczasowy. Powiadamia, że nie udało się natychmiast pobrać lokalizacji, ale nadal próbuje. „W takiej sytuacji możesz po prostu zignorować błąd i poczekać na nowe zdarzenie”. To naprawdę wspaniały sposób na użycie metody o nazwie
locationManager:didFailWithError:
- Dzięki Apple!Apple Documentation
źródło
Spróbuj ponownie uruchomić symulator (zakładając, że tego właśnie używasz).
Po wypróbowaniu wszystkiego innego, to zadziałało.
źródło
Restart symulatora nie działał dla mnie.
źródło
Otrzymałem ten błąd na symulatorze. Kliknięcie przycisku lokalizacji w panelu debugowania i ustawienie lokalizacji rozwiązało problem. (Upewnij się, że przycisk jest niebieski)
źródło
Mam ten sam problem. Uważam, że możliwe wyjaśnienia / poprawki są omówione w tym poście SO .
źródło
Zmiana "Lokalizacji" w symulatorze działała dla mnie.
źródło
źródło
Zakładając, że korzystasz z symulatora, możesz wybrać
Debug -> Location
i ustawić lokalizację.Jeśli nie wybrałeś żadnego, pojawi się ten błąd.
źródło
Jeśli używasz,
custom location
upewnij się, że masz długą i krótszą długość we właściwy sposób, odwróciłem to i zmarnowałem 3 godziny, zanim zdałem sobie sprawę ...źródło
Widziałem już problem, jest sposób na jego rozwiązanie, ale może zadziałać tylko raz, jeśli chcesz uruchomić projekt ponownie i za każdym razem musisz powtórzyć rozwiązanie.
źródło
Takie problemy można rozwiązać, ustawiając lokalizację na „
Apple
”. Przynajmniej działa w celach testowych.źródło
z odpowiedzi @Mem i wielu innych dzięki
źródło
Dla zwróconych twórców :) Po prostu wybierz "
Debug->Location->Freeway Drive
" z menu Symulatora. Jeśli problem nadal występuje, spróbuj po wykonaniu „Symulatora-> Resetuj zawartość i ustawienia” z menu symulatora. Pomogło mi to kiedyś w tym samym problemie. W pewnym momencie lokalizacja symulatora jest ustawiona na „Custom location
”, przez co nie wykrywa on niczego.źródło
Jeśli używasz symulatora, upewnij się, że schemat zezwala na lokalizację i wybrałeś lokalizację domyślną.
źródło
Wypróbuj w urządzeniu. Czasami symulator nie może określić Twojej lokalizacji.
źródło
Idź do domu w symulatorze
strona główna -> Ustawienia -> Prywatność -> Lokalizacje -> wybierz aplikację i wybierz zawsze
źródło
podczas dodawania uprawnień Prywatność - Lokalizacja Podczas używania Opis użytkowania w info.plist został rozwiązany za mnie
źródło