2015-08-04 8 views
0

Здравствуйте, Каков наилучший способ получить местоположение на iPad, iPod, а также в iPhone.Местоположение показано 0.0 в iPad и iPod

Я включил следующее, но я все еще не могу получить правильное текущее местоположение. На IPOD я только получить место в первый раз:

+ (GPS*)get 
{ 
    if (!g_) 
    { 
     NSLog(@"Creating instance of GPS!"); 
     g_ = [GPS new]; 
    } 
    return g_; 
} 

@synthesize manager; 

- (id)init 
{ 
    if (!(self = [super init])) 
     return nil; 

    //Setup the manager 
    manager = [[CLLocationManager alloc] init]; 
    if (!manager) 
    { 
     return nil; 
    } 
    manager.distanceFilter = kCLDistanceFilterNone; 
    manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; 
    manager.desiredAccuracy = kCLLocationAccuracyBest; 
    manager.delegate = self; 

    if ([manager respondsToSelector:@selector(pausesLocationUpdatesAutomatically)]) 
    { 
     manager.pausesLocationUpdatesAutomatically = NO; 
    } 
    if ([manager respondsToSelector:@selector(requestAlwaysAuthorization)]) 
    { 
     [manager requestAlwaysAuthorization]; 
    } 

    [manager startUpdatingLocation]; 

    return self; 
} 

- (void)start 
{ 
    NSLog(@"Start Tracking"); 

    [manager startUpdatingLocation]; 
} 

-(void)stop 
{ 
    [manager stopUpdatingLocation]; 
} 

#pragma mark CLLocationManagerDelegate 

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    CLLocation *currentLocation = [locations lastObject]; 
    NSLog(@"%f : %f", currentLocation.coordinate.latitude, currentLocation.coordinate.longitude); 
    //[self writeToFile]; 
} 

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 
{ 
    NSLog(@"locationManager - didFailWithError: %@", [error localizedDescription]); 
    NSLog(@"domain:%@", [error domain]); 
    //NSLog(@"code:%i", [error code]); 
    //[self writeToFile]; 
} 
+0

Какая версия iOS? – SanitLee

+1

Я использую 8.4 на своем устройстве –

ответ

0

Там есть место проблема разрешения на iOS8. В вашем недавнем комментарии, что вы используете iOS 8.4, это может быть вашей проблемой. Так что попробуйте это ниже кода перед startUpdatingLocation:

// This part was added due to a location authorization issue on iOS8 
// See more at: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/ 
if ([manager respondsToSelector:@selector(requestWhenInUseAuthorization)]) { 
    [manager requestWhenInUseAuthorization]; 
} 
self.mapView.showsUserLocation = YES; //? 

До этого, убедитесь, что вы настроили Info.plist правильно, добавив один или оба из следующих ключей к нему:

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysUsageDescription
+0

Разве это сработает для вас? – SanitLee