1

我有一个需要使用 StartMonitoringForRegion 的应用程序。当我将以下代码放入应用程序 didFinishLaunchingWithOptions 时,它可以工作。

[loc startUpdatingLocation];
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(21.456372,39.287972);
CLRegion* region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:200 identifier:@"C"];
[self.locationManager startMonitoringForRegion:region desiredAccuracy:50];

但是当我在另一个视图中使用相同的代码时,它不起作用!我尝试使用以下代码在主线程上执行代码:

if (![NSThread isMainThread])
{
    [self performSelectorOnMainThread:@selector(MonitorRegion:) withObject:pr waitUntilDone:NO];
    return;
}

但它仍然不起作用!

为什么代码会在 didFinishLaunchingWithOptions 而不是其他视图中工作!

是否存在区域监视器可能无法工作的情况?

4

1 回答 1

2

经过搜索和不同的试验,我想出了如何解决它。

只是为了使 didEnterRegion 和 didExitRegion 工作,该视图必须始终可见并运行。

我将所有内容都移到了 appDelegate,现在它可以工作了。

于 2012-10-19T08:53:12.710 回答