1

私は典型的な問題を抱えています。私のアプリケーションでは、アプリケーション デリゲート メソッドを処理しています

- (void)applicationDidBecomeActive:(UIApplication *)application

UI を更新します。

私のアプリケーションは終了せず、バックグラウンドで実行されるため、アプリがアクティブな状態になるたびに、このメソッドが呼び出され、正常に動作します。
しかし、私のView Controllerの1つで、CLLocationManagerオブジェクトを作成しています

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self; // send loc updates to myself

問題は、このロケーション マネージャー オブジェクトが作成されているときに、アプリケーション デリゲートの "applicationDidBecomeActive" も呼び出されていることです。これを処理する必要はありません。ロケーションマネージャーオブジェクトが初期化されているときに、呼び出しを無視するにはどうすればよいですか?

4

1 に答える 1

0

そのような呼び出しが発生するのは奇妙ですが、それを停止する方法がない場合は、デフォルトでフラグを作成し、callAfterSettingDelegate を簡単に作成し、DidBcomeActiveその後に呼び出されたかどうかをチェックして、この呼び出しを無視し、そのフラグを nil に設定します。 .

于 2012-04-24T13:31:43.953 に答える