kin*_*min 1 objective-c core-location ios ios7
我正在使用谷歌地图SDK for iOS和CoreLocation框架的区域监控来实现iOS7应用程序.注册监控区域后,调用requestStateForRegion方法但我对设备上的didDetermineState:forRegion方法没有反应(iOS7.0.4,iPhone5S).
它可以接收didUpdateLocation方法,所以我认为委托过程工作正常.在模拟器上,didDetermineState:forRegion方法调用正确.
我该怎么做才能解决这个问题?初始化代码如下.
任何建议表示赞赏 提前致谢.
- (void)viewDidLoad
{
    if (locManager == nil ) {
        locManager = [CLLocationManager new];
    }
    locManager.delegate = self;
    CLLocationCoordinate2D targetCenter;
    targetCenter.latitude = LATITUDE_CENTER;
    targetCenter.longitude = LONGITUDE_CENTER;
    CLLocationDegrees radius = TARGET_RADIUS;
    if ( locManager.maximumRegionMonitoringDistance < TARGET_RADIUS ){
        radius = locManager.maximumRegionMonitoringDistance;
    }
    self.targetRegion = [[CLCircularRegion alloc]
                     initWithCenter:targetCenter
                     radius:radius
                     identifier:@"TargetRegion"];
    BOOL monitoringAvailability = [CLLocationManager isMonitoringAvailableForClass:[self.targetRegion class]];
    if( monitoringAvailability ) {
        if( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized ) {
            [locManager startMonitoringForRegion:self.targetRegion];
        }
    }
    [locManager requestStateForRegion:self.targetRegion];  
}
- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
    if (state == CLRegionStateInside){
        NSLog(@"is in target region");
        self.isInTargetRegion = YES;
    }else{
        NSLog(@"is out of target region");
        self.isInTargetRegion = NO;
    }
}
Run Code Online (Sandbox Code Playgroud)