diddeterminestate并不总是被称为
其他人有没有总是被称为diddeterminestate的问题? 有时候我打电话
[self.locationManager requestStateForRegion:region];
没有任何反应 好奇的是,当我插入一个中断点
-(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
它开始工作,被称为! 对我来说这似乎很不稳定。
我在监测一个地区的状态时,经常遇到这个问题。
例如
[self.locationManager startMonitoringForRegion:region]; [self.locationManager requestStateForRegion:region];
我确保通过调度requestStateForRegion来调用didDetermineStateForRegion:在调用startMonitoringForRegion之后不久。 现在这不是一个很好的解决scheme,应该小心使用,但似乎解决了这个烦人的问题。 下面的代码
[self.locationManager startMonitoringForRegion:region]; [self.locationManager performSelector:@selector(requestStateForRegion:) withObject:region afterDelay:1];
也许把requestStateForRegion调用放在委托方法didStartMonitoringForRegion中会更好。 在监视(这是asynchronous)实际上已经开始之前,可能会运行requestStateForRegion。
- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region { NSLog(@"Started Monitoring for Region:\n%@",region.description); [self.locationManager requestStateForRegion:region]; }