我一直在尝试在 iPhone 上进行区域监控时遇到问题。首先,我从来没有(甚至一次都没有)在我的 iPhone 4 设备上使用过didEnterRegion
或开过火。didExitRegion
我决定在模拟器上进行测试,而不是浪费工作时间在市中心走来走去(尽管我希望在真实场景中看到这项工作)。首先,模拟器在准确性方面还有很长的路要走,你会认为它非常准确(或者我假设错了?)。
通过更改 Debug 菜单下的位置,在模拟器中完成以下操作
我终于didEnterRegion
开枪了,尽管我离这个圈子大约 8 个街区。当我离开该地区didExitRegion
时,连续发射了大约 200 次。这是模拟器错误吗?我几乎准备放弃这个并开始自己计算这些东西,因为它越来越荒谬了。
关于为什么准确性如此糟糕以及为什么我的方法被解雇这么多次的任何想法?
以下是相关代码:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
CLLocationDegrees latitude = 45.50568;
CLLocationDegrees longitude = -73.57033;
CLLocationCoordinates2D centerCoordinate = CLLocationCoordinate2DMake(latitude, longitude);
CLLocationDistance regionRadius = 200.0;
CLRegion *myRegion = [[CLRegion alloc] initCircularRegionWithCenter:centerCoordinate radius:regionRadius identifier:@"aroundWork"];
[locationManager startMonitoringForRegion:myRegion];
return YES:
}
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"Entered region: %@", region.identifier);
}
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"Exited region: %@", region.identifier);
}