私のアプリは、GPS/Heading がアクティブな状態で長時間注意を払わない可能性があります。コンパスのキャリブレーションポップアップが表示されるかどうかを管理するために、これを行いました。
-(BOOL) locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager {
// NSTimer *dismissHeadingSoon;
// dismissHeadingSoon = [NSTimer scheduledTimerWithTimeInterval:200
// target:self selector:@selector(removeHeadingCalibration:) userInfo:nil repeats:NO];
return YES;
}
-(void) removeHeadingCalibration:(NSTimer *)timer {
[locationManager dismissHeadingCalibrationDisplay];
}
しばらくするとポップアップを閉じるタイマーが必要です(上記のコメントアウト)。問題は、キャリブレーション画面が 0.5 秒間だけ表示され、すぐに消えることです。したがって、私のコードはタイマーを開始せずに YES としか言いません。デリゲートを削除すると、正常に機能します。
ドキュメントには、「戻り値 ヘディング キャリブレーション アラートの表示を許可する場合は YES、許可しない場合は NO」と記載されています。
私は何を間違えましたか?(ios7 および xcode 5.1)