私は現在、他の開発者が開始した iOS アプリで作業しています。ユーザーの位置を低精度 (100 メートル) で知る必要があるため、アプリは位置の変化を監視する必要があります。ロケーション関連の以前の実装は、NSTimer
andを使用して行われましたstartUpdatingLocation
。実行は次のようになります。
// Fire each 10 seconds start updating location
self.timerPosition = [NSTimer scheduledTimerWithTimeInterval:ti
target:self
selector:@selector(location)
userInfo:nil
repeats:YES];
[self.timerPosition fire];
ロケーションセレクターはこれを行います
// Configure & check location services enabled
...
self.locman.delegate = self;
self.locman.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[self.locman startUpdatingLocation];
そして、ロケーションマネージャーデリゲートで
[manager stopUpdatingLocation];
しかし、Apple docs でユーザーの場所を取得することについて読むと、低消費電力で場所を取得する正しい方法はstartMonitoringSignificantLocationChanges
.
私の質問は、場所のタイマーを のstartMonitoringSignificantLocationChanges
代わりに と組み合わせたままにするのは良い決断startUpdatingLocation
ですか、それともナンセンスなアプローチですか?
アプリがバックグラウンドにあるときに位置情報を取得する必要はありませんが、アプリがアクティブなときにユーザーがいつ位置を変更したかを知りたいです。