iOS 6 CoreLocation nie działa
Tworzę aplikację lokalizacyjną. Ale Core Location nie działa. Przetestowałem inną aplikację na iPhone'a na moim iPhonie.
Podobnie jak Google Earth, oprogramowanie nawigacyjne. Inne aplikacje również nie działają.
Dlaczego nie aktualizuje lokalizacji?
Dlaczego komunikat „locationManager: didUpdateToLocation: fromLocation:” zadzwonił tylko 2 razy?
Może ... Mój iPhone się zepsuł? lub frameworki CoreLocation iOS 6 mają jakiś błąd?
Usługa lokalizacji - Włączone w ustawieniach iPhone'a
Info.plist
armv7akcelerometrusługi lokalizacyjneGPSmikrofonmagnetometrPrzykład kodu:
- (CLLocationManager *)setupLocationManager
{
if ([CLLocationManager locationServicesEnabled] && [CLLocationManager headingAvailable]) {
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.headingFilter = kCLHeadingFilterNone;
[locationManager startUpdatingLocation];
[locationManager startUpdatingHeading];
return locationManager;
}
return nil;
}
- (CLLocationManager *)locationManager
{
switch([CLLocationManager authorizationStatus])
{
case kCLAuthorizationStatusAuthorized:
_deltaTimeLocationReceived = 0.0;
if (_locationManager == nil)
_locationManager = [self setupLocationManager];
return _locationManager;
case kCLAuthorizationStatusDenied:
case kCLAuthorizationStatusRestricted:
if (_locationManager)
_locationManager = nil;
return _locationManager;
case kCLAuthorizationStatusNotDetermined:
_deltaTimeLocationReceived = 0.0;
if (_locationManager == nil)
_locationManager = [self setupLocationManager];
return nil;
}
return nil;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%@ %@", NSStringFromSelector(_cmd), newLocation.description);
if (self.locationManager) _locationSignal++;
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"%@ %@", NSStringFromSelector(_cmd), error.description);
}