0

我暂时禁用了位置服务和我的应用程序的权限,以便我可以测试一些处理它们不可用的情况的代码。再次打开它们后,现在无法使用以下代码获取我的位置:

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
CLLocation *currentLocation = locationManager.location;
[locationManager stopUpdatingLocation];

locationManager.location等于nil运行此代码后。

我在运行 iOS 6 的 iPad 上运行它。

4

1 回答 1

2

为 CLLocationManager 设置委托

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];

试试 CLLocationManager 的代表。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    self.currentLocation = newLocation;            
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    // The location "unknown" error simply means the manager is currently unable to get the location.
    // We can ignore this error for the scenario of getting a single location fix, because we already have a
    // timeout that will stop the location manager to save power.
    if ([error code] != kCLErrorLocationUnknown) {
        [self stopUpdatingLocation:NSLocalizedString(@"Error", @"Error")];
    }
}
于 2013-08-08T10:09:46.300 回答