Spędziłem kilka dni próbując rozwiązać ten problem, ale nie mogłem znaleźć żadnych rozwiązań, które działają. Sprawdziłem wszystkie posty na stackoverflow i wypróbowałem wszystkie ich rozwiązania i wydaje się, że nic nie działa. Wypróbowałem także test jabłkowy na CLLocation, który działa dobrze dla mnie. Użyłem kawałki z projektu badawczego jabłkoCLLocation didupdatetolocation nie nazywane
https://developer.apple.com/library/ios/samplecode/LocateMe/Listings/README_md.html
Ale mój kod nie działa w ogóle. DidupdateToLocation nigdy nie zostanie wywołany.
Oto mój kod (w viewDidLoad)
_locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
// This is the most important property to set for the manager. It ultimately determines how the manager will
// attempt to acquire location and thus, the amount of power that will be consumed.
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
// Once configured, the location manager must be "started"
//
// for iOS 8, specific user level permission is required,
// "when-in-use" authorization grants access to the user's location
//
// important: be sure to include NSLocationWhenInUseUsageDescription along with its
// explanation string in your Info.plist or startUpdatingLocation will not work.
//
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[self.locationManager requestWhenInUseAuthorization];
}
[self.locationManager startUpdatingLocation];
[self performSelector:@selector(stopUpdatingLocationWithMessage:)
withObject:@"Timed Out"
afterDelay:30];
I zostały sprawdzone, aby upewnić locationServicesEnabled jest włączony.
Dodałem właściwość NSLoationWhenInUseUsageDescription do pliku info.plist. Czy istnieje jakakolwiek inna właściwość, którą muszę dodać lub udostępnić dowolne usługi?
Nie mogę z miłości do Boga dowiedzieć się, co zrobiłem źle. Czy ktoś mógłby mi z tym pomóc.
btw pojawia się alert autoryzacji? –
Alert autoryzacji nie pojawia się – dogwasstar
Wtedy domyślam się, że callback didChangeAuthorizationStatus nie został wywołany, prawda? Usługa lokalizacyjna dla aplikacji jest włączona? (Ustawienia/Prywatność/Usługi lokalizacyjne) Czy jesteś pewien, że dodałeś właściwy klucz do swojej .plist? –