是否有其他人有问题确定并不总是被调用?有时我打电话
[self.locationManager requestStateForRegion:region];
没有任何反应。奇怪的是,当我在
中插入一个断点时-(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
它开始工作并被召唤!这对我来说似乎很不稳定。
答案 0 :(得分:12)
在监控区域后立即请求区域状态时,我经常会遇到此问题。
e.g。
[self.locationManager startMonitoringForRegion:region];
[self.locationManager requestStateForRegion:region];
我确保调用requestStateForRegion调用didDetermineStateForRegion:调用startMonitoringForRegion后不久。现在它不是一个很好的解决方案,它应该小心使用,但它似乎解决了这个烦人的问题。代码
[self.locationManager startMonitoringForRegion:region];
[self.locationManager performSelector:@selector(requestStateForRegion:) withObject:region afterDelay:1];
答案 1 :(得分:3)
也许将requestStateForRegion调用放在委托方法didStartMonitoringForRegion中会更好。在监视(异步)实际开始之前,可能正在运行requestStateForRegion。
- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
NSLog(@"Started Monitoring for Region:\n%@",region.description);
[self.locationManager requestStateForRegion:region];
}