1

CLLocationManagerDelegate locationManager:didFailWithError のドキュメントには、次のように書かれています。

ユーザーがアプリケーションによる位置情報サービスの使用を拒否した場合、このメソッドは kCLErrorDenied エラーを報告します。このようなエラーを受け取ったら、位置情報サービスを停止する必要があります。

ただし、単にエラーを無視すると、それ以上の場所の更新は得られません。また、エラーを無視すると、ユーザーが [設定] に移動してアプリの位置情報サービスを有効にすると、次にアプリがフォアグラウンドになったときに位置情報サービスの更新が再開されるという利点があります。

そのため、誰かが問題を発見したり、アプリが拒否されると考えたりしない限り、locationManager:didFailWithError からのすべてのエラーを無視する予定です。

1 つの問題は電力使用量かもしれませんが、エラーが発生すると、更新などを取得していないため、余分な電力が使用されていないと思います。

私のフォールバックは、フォアグラウンドになったときに更新を再度有効にすることです。これは良いですか?

4

1 に答える 1

1

最近まで kCLErrorDenied を処理していませんでしたが、Apple には問題がありませんでした。アプリは位置情報サービスがないかのように動作するだけなので、問題はないはずです。ただし、位置情報サービスがアプリの主要な部分である場合は特に、位置情報サービスを有効にするようにユーザーに指示する必要があります。

于 2013-01-30T02:19:07.277 に答える