NavigationController を使用して、ユーザーが利用できるジオフェンスのリストを表示しています。上部には、CoreLocation -startMonitoringForRegion で登録されたフェンスを無効にするために使用したいグローバル オン/オフ スイッチがあります。
私のフェンスは正常に登録されており、ほとんどの部分で機能しているようですが、フェンスを個別に何度無効にしても、システムがまだ私の場所やフェンスを監視していることを示す紫色の場所の矢印が表示されます。
フェンスを個別に無効にすると、これが私のやり方です。
CLLocationCoordinate2D coord;
coord.latitude = [[settingsData valueForKey:@"latitude"] doubleValue];
coord.longitude = [[settingsData valueForKey:@"longitude"] doubleValue];
CLLocationDistance radius = [[settingsData valueForKey:@"radius"] intValue];
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:radius identifier:[settingsData valueForKey:@"name"]];
// remove this fence from system monitoring
[locationManager stopMonitoringForRegion:region];
[region release];
CoreLocation とこれらのメソッドの使用に関する Apple のドキュメントをすべて確認しましたが、ロープの終わりにいます。
呼び出してみまし[locationManager monitoredRegions];
たが、アクティブなフェンスのみが返され、詳細ビューがロードされている場合にのみ返されます。プログラム内の他の場所でそれを呼び出して、フェンスをアクティブにする必要があることを知っていても、フェンスを返すことができません。次にどこに行くべきかアドバイスがあれば、私はすべて耳を傾けます。