19

Apple のドキュメントによると、記号startMonitoringSignificantLocationChanges変更 API を使用するアプリケーションでは、次の動作が予想されることがわかっています。

このサービスを開始した後にアプリケーションが終了した場合、新しいイベントが到着すると、システムはアプリケーションをバックグラウンドで自動的に再起動します。このような場合、アプリケーション デリゲートの locationManager:didUpdateLocations: メソッドに渡されるオプション ディクショナリには、ロケーション イベントのためにアプリケーションが起動されたことを示すキー UIApplicationLaunchOptionsLocationKey が含まれます。再起動時に、引き続きロケーション マネージャー オブジェクトを構成し、このメソッドを呼び出してロケーション イベントを受信し続ける必要があります。位置情報サービスを再起動すると、現在のイベントがデリゲートにすぐに配信されます。さらに、ロケーション サービスを開始する前であっても、ロケーション マネージャー オブジェクトのロケーション プロパティには最新のロケーション オブジェクトが取り込まれます。

ソース:アップル ドキュメント

私の質問は、これをデバッグおよび/またはテストするにはどうすればよいですか? アプリを終了するとすぐに、何が起こっているのかわかりません (つまり、アプリでデバッグ セッションが強制終了されます)。設定された launchOption キーを使用して、iOS がバックグラウンドでアプリを起動したとき、または起動したかどうかはいつわかりますUIApplicationLaunchOptionsLocationKeyか? それよりも重要なことは、実行されるコードのブロックが適切に機能しているかどうかをどのように知ることができるでしょうか? 私が書いたコードが魔法のように機能することを期待して、アプリを終了した後、車を運転することなく、このシナリオを迅速にテストするにはどうすればよいでしょうか? どんな助けでも大歓迎です!!

4

1 に答える 1

29

Xcode の [Debug] > [Attach to Process] > [By Process Identifier (PID) or Name…] メニューを使用します。プロセスの名前を指定すると、Xcode は起動してデバッグ セッションを開始するまで待機します。

于 2013-11-07T23:16:57.643 に答える