相关疑难解决方法(0)

iOS 7 CoreLocation:在授权位置服务后,区域监控首次失败

我使用CoreLocation在我的应用上发现了一个奇怪的行为.我正在使用区域监视功能,但在授权位置服务(通过弹出或设置 - >位置服务)后,区域监视失败(操作无法完成.kCLErrorDomain错误5.).如果我关闭应用程序并重新启动(因此已经授权),一切都按预期工作.我的代码看起来像这样:

-(void)initializeLocationServices
{
    NSLog(@"Started location services");

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
    locationManager.pausesLocationUpdatesAutomatically = NO;

    [locationManager startUpdatingLocation]; // to show authorisation popup
}

-(CLCircularRegion*)createRegion
{   
    // Test coordinates
    CLLocationDegrees latitude = 50;
    CLLocationDegrees longitude = -1;
    CLLocationDistance radius = 50; // meters;

    // If radius is too large, registration fails automatically, so limit the radius to the maximum value
    if (radius > locationManager.maximumRegionMonitoringDistance) {
        radius = locationManager.maximumRegionMonitoringDistance;
    }

    CLCircularRegion* region …
Run Code Online (Sandbox Code Playgroud)

objective-c core-location ios ios7 region-monitoring

7
推荐指数
2
解决办法
6313
查看次数