2

「セッション303-位置情報サービスからの軌道に乗る」WWDC2012の自動一時停止の例に従いました。

この例では、AutoPauseがどのように有効になっているか、および呼び出される2つのメソッドを確認できます。

-(void) locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager
-(void) locationManagerDidResumeLocationUpdates:(CLLocationManager *)manager

同じ例を実行しましたが、これらのメソッドが呼び出されることはありません。誰が同じことを試みましたか?

4

2 に答える 2

6

私は今それを試しており、ここに私の観察があります:

iPhone 4では、まったく機能しません。pausesLocationUpdatesAutomatically を YES に設定しても、pausesLocationUpdatesAutomatically は NO(0) のままです。警告はありません。これは、どのような API 設計のアンチパターンです!

iPhone 5では、pausesLocationUpdatesAutomatically はデフォルトで YES (1) です。そして、locationManagerDidPauseLocationUpdates が呼び出されます。locationManagerDidResumeLocationUpdates が呼び出されて運が悪くなっています。GPSがオフの場合、これがどのように呼び出されるのか、私も困惑していますか? ユーザーが次のネットワークセルに到達すると呼び出されますか? それは私の経験ではありませんが、呼び出されることはありません。

これまでのところ、iOS6 で最も一貫性のない変更の 1 つに見えます。すべてのシナリオでpausesLocationUpdatesAutomatically = NOだけを使用する可能性があり、iOS6のすべてのモデルで問題なく動作することを願っています.

[更新 - 2013 年 3 月 4 日]。iOS6 での場所の変更に関する Apple のプレゼンテーションを調べたところ、地域の変更イベントを取得したら、地域の変更の監視を使用して「一時停止を解除」することを提案しています。これは私のシナリオには適していませんが、ユーザーはそのようなイベントが発生するまで 1 ~ 2 キロメートル移動/実行/運転する可能性があるためです。

于 2012-10-30T13:03:02.057 に答える
1

私は同じ問題を抱えていて、プロパティpausesLocationUpdatesAutomaticallyをに設定する必要があることがわかりましたYES

于 2012-10-23T15:28:28.113 に答える