24

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];たが、アクティブなフェンスのみが返され、詳細ビューがロードされている場合にのみ返されます。プログラム内の他の場所でそれを呼び出して、フェンスをアクティブにする必要があることを知っていても、フェンスを返すことができません。次にどこに行くべきかアドバイスがあれば、私はすべて耳を傾けます。

4

3 に答える 3

51

または、より単純な解決策:

for (CLRegion *monitored in [locationManager monitoredRegions])
    [locationManager stopMonitoringForRegion:monitored];
于 2012-07-03T01:49:08.120 に答える
13

さて、ようやくここで自分の質問に答えられると思います。これは、私が自分の賞金を請求​​できることを意味しますか?:D

まず、長引く場所の矢印はiOSのバグのようです。私は、まったく同じ問題を抱えた複数のストーリーを見つけました。ですから、今のところ、それについて私ができることはあまりありません。

一度にすべてのリージョンを削除する限り、私はこれを今すぐ手に入れました。

NSArray *regionArray = [[locationManager monitoredRegions] allObjects]; // the all objects is the key
for (int i = 0; i < [regionArray count]; i++) { // loop through array of regions turning them off
     [locationManager stopMonitoringForRegion:[regionArray objectAtIndex:i]];
}

私は自分のアレイを表示することができ、それらがすべてそこにあることを証明しました。削除後の別のチェックは、それらがすべてなくなっていることを示しています。ふぅ!場所の矢印の問題は、実行しているiOSのバージョンによって異なります。私は推測することはできません。ユーザーがいる場合は、紫色の矢印が自分のせいではないことをユーザーに知らせてください。この問題の詳細については、ここから開始できます。GetSatisfaction頑張ってください。

于 2011-08-25T21:07:26.993 に答える
3

はい、iOSのバグです。アプリを削除して再インストールしても効果はありません。私が問題を取り除くことができた唯一の方法は、場所の警告をリセットすることです

于 2011-08-26T02:17:37.533 に答える