位置情報サービスの承認ステータスの変化を監視するには、次のようなメソッドを取得するCLLocationManagerDelegate
メソッドを実装する必要がありますlocationManager:didChangeAuthorizationStatus:
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
if (status == kCLAuthorizationStatusDenied) {
// permission denied
}
else if (status == kCLAuthorizationStatusAuthorized) {
// permission granted
}
}
可能な承認ステータスとその説明の完全なリストについては、CLAuthorizationStatusの公式ドキュメントを参照してください。
編集
のインスタンスが既にある可能性があります。これをCLLocationManager
と呼びましょうlocationManager
。次に、デリゲートを実装するために、クラスをCLLocationManagerDelegate
プロトコルに準拠させ (クラスのヘッダーで宣言できます。これは必須ではありませんが、いくつかの静的チェック機能を提供します)、次delegate
のようなプロパティに割り当てます。locationManager
locationManager.delegate = self; //assuming that self is gonna be the delegate
説明どおりにすべてを行った場合、ドキュメントに記載されているように、承認が変更されるたびにコントローラーが呼び出されます。
このメソッドは、位置情報サービスを使用するアプリケーションの機能が変更されるたびに呼び出されます。