1

ルートに沿って 5 つの地域のセットを指定し、地域に出入りするときに通知を送信する iOS 7 アプリに取り組んでいます。
領域は半径 1 km の円形であり、隣接していませんが、それらの間には数 km のスペースがあります。これに少し似ています(これOは円形の領域であり、-それらの間のスペースです):

O----O---O-------O---O-----O---O

私は自分の車を運転していくつかのテストを行いましたが、1 つのことを除いて、すべてが正常に機能しているようです。実際に地域を離れたdidExitRegionときに呼び出しは発生しませんが、別の地域に入ったときにのみ呼び出されます。イベント ログは次のようになります。

2013-10-17 07:58:56 Entered region A
2013-10-17 08:10:05 Exited region A
2013-10-17 08:10:05 Entered region B
2013-10-17 08:26:15 Entered region C
2013-10-17 08:26:15 Exited region B
2013-10-17 08:51:52 Exited region C
2013-10-17 08:51:52 Entered region D
2013-10-17 09:19:04 Entered region E
2013-10-17 09:19:04 Exited region D

すべての終了イベントは、次の領域の開始イベントとまったく同時に発生することに注意してください。
私は API ドキュメントを読み直しましたが、コメントに気付きましたOnly boundary crossings generate an event.が、これは、地域を出た瞬間にイベントをトリガーする必要があることを意味していると思います。

デフォルトの精度 ( ) で CLLocationManager を使用しており、監視しているリージョンごとに 1 回kCLLocationAccuracyBest呼び出します。startMonitoringForRegion

私が見ている行動が予想されるものなのか、それとも私が何か間違ったことをしているのか、誰かが知っていますか?

4

1 に答える 1

0

まぁ、直ったけど何が原因だったのかわからない。

単一のビューコントローラーに CLLocationManagerDelegate メソッドを含むすべての領域監視ロジックがありました。私はそれをすべて別のシングルトンに移動し、その参照を AppDelegate に保持し、通知を使用してビューコントローラーがビューを更新できるようにしましたが、現在はすべて正常に機能しています。

于 2013-10-17T16:43:55.393 に答える