2012-01-23 8 views
2

ロケーションサービスを無効にすると、このアラートが2回表示されます。最初に、ロケーションマネージャ目的のプロパティが表示されません。その直後(最初のアラートのボタンがタッチされる前)には、目的のプロパティを含むこの時間が再度表示されます。iOS:起動時に「ロケーションサービスを有効にする」アラートが2回表示されるのはなぜですか?

2つ目のアラートが終了すると、最初のアラートが表示されます。

これは少し面倒なことですが、私はそれがユーザーに混乱すると予想します。

目的プロパティで一度だけ表示するにはどうすればよいですか?

+0

実際のコードを追加して、少し手伝ってもらうことができますか? –

+0

まず、これが典型的な動作であるか、それとも正常でないのかを知りたいだけですか?それが正常でない場合は、何が起こっているのかを知るためにもう少し詳しく調べてみましょう。私は位置情報サービスを無効にしてあまりプレイしていないので、これは私には新しいものです。 – Jim

+0

これはデフォルトの動作ではなく、おそらくあなたは何か間違っているでしょう。ロケーションマネージャをどのように使っているのか、いくつかのコードを投稿してください。 – saadnib

答えて

0

マップコントローラオブジェクトとロケーションマネージャオブジェクトの両方が、アプリケーションデリゲートでインスタンス化されていました。

- (void) restartLocationManager { 
    if (locationManager) 
     [locationManager release]; 

    locationManager = [[[CLLocationManager alloc] init] retain]; 
    locationManager.purpose = NSLocalizedString(@"Location Service Purpose", nil); 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; 
    [locationManager startUpdatingLocation]; 
} 

だからこれは、マップの初期化中に何かがトリガーされたことを手掛かりだった:ロケーションマネージャは、このコードでインスタンス化されるまでは、ロケーションマネージャの目的のプロパティが設定されていない

mapController = [[[MapController alloc] initWithFrame:CGRectMake(0, 0, 0, 0)] retain]; 
[self restartLocationManager]; 

最初の警告。

最初のアラートで位置情報サービスをオンにすることを拒否したため、地図コントローラーが初期化され、アラートを表示する必要がありました。マップコントローラの初期化がこれです(それはシングルトンの一部であり、その点でいくつかのクリーンアップが必要ですが、それを無視して...):コードをステップ実行

- (id) initWithFrame:(CGRect)aFrame { 
    @synchronized(self) { 
     if (!theMap) { 
      if (!self) self = [super init]; 

      theMap = [[[MKMapView alloc] initWithFrame:aFrame] retain]; 
      theMap.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
      theMap.showsUserLocation = YES; 
      theMap.delegate = self; 
    } 
    return self; 

} 

、私はときに、第2の警告ショーアップを見てshowUserLocation行が実行されました。正確に絞り込むためにもう少しテストをしなければならないだろうが、今は正しい方向に進んでいると思う。

+0

私は同様の問題を抱えていますが、私の人生は警戒を引き起こしていることを理解できません。私は、ロケーションサービスがアプリのために許可されていない限り、重要な変更監視をオンにしません。 私のためのヒント?正直なところ、アラートはかなりランダムに見えます。 – elsurudo

関連する問題