アプリが初めてユーザーの場所を取得しようとすると、「現在の場所を使用します」というメッセージが表示され、[許可しない]または[OK]をクリックできます。ユーザーが[OK]をクリックしたか、許可しないかを確認する方法はありますか?MKMapViewにユーザーの現在の場所を表示させようとしていますが、ユーザーの選択に基づいてさまざまなアクションを実行したいと思います。
通常、この情報を入手するための代理人がいると思いますが、そうではないようです。
よろしくお願いします。
アプリが初めてユーザーの場所を取得しようとすると、「現在の場所を使用します」というメッセージが表示され、[許可しない]または[OK]をクリックできます。ユーザーが[OK]をクリックしたか、許可しないかを確認する方法はありますか?MKMapViewにユーザーの現在の場所を表示させようとしていますが、ユーザーの選択に基づいてさまざまなアクションを実行したいと思います。
通常、この情報を入手するための代理人がいると思いますが、そうではないようです。
よろしくお願いします。
ユーザーの位置情報を取得するための最初の呼び出しは、ユーザーが位置情報サービスを拒否したことを示すエラーで失敗します。CLLocationManagerDelegate
以下のように、メソッドdidFailWithError
が呼び出されます。(定数はで定義されていCLError.h
ます)
- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError
{
switch([anError code])
{
case kCLErrorLocationUnknown: // location is currently unknown, but CL will keep trying
break;
case kCLErrorDenied: // CL access has been denied (eg, user declined location use)
message = @"Sorry, flook has to know your location in order to work. You'll be able to see some cards but not find them nearby";
break;
case kCLErrorNetwork: // general, network-related error
message = @"Flook can't find you - please check your network connection or that you are not in airplane mode";
}
}