1

位置情報を確認するアプリがあります。ユーザーに場所を使用するように求めます。ユーザーがメニューで「いいえ」と言った場合、マップビューをロードするときに問題が発生します。

mapView を選択すると、ユーザーの場所が再度求められます。ユーザーがもう一度いいえと言った場合、コンソールはエラー/警告と、ロケーション マネージャー クラスの「didFailWithError」からの NSLog を表示し続けます。

ユーザーがすでにいいえと言った場合、LocationManage:didFailWithErrors を停止する方法はありますか? Log ファイルが LocationManager でいっぱいになった場合、Apple は私のアプリを受け入れないと思います

コンソールで繰り返される内容の例を次に示します

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user
4

2 に答える 2

4

-didFailWithError:メソッドに関するドキュメントは次のように述べています。

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

したがって、このエラーを受け取った後、ロケーション マネージャーにメッセージを送信して、ロケーションの更新を停止する必要があります。

[manager stopUpdatingLocation];

MKMapView を使用している場合は、そのshowsUserLocationプロパティを NO に設定するとうまくいくはずです。

于 2010-03-15T16:55:57.520 に答える
0

エラー コードを確認し、エラー コードが の場合は場所の更新を停止する必要がありますkCLErrorDenied

于 2010-03-15T16:56:27.987 に答える