2014年10月02日

iOS8でCLLocationManagerによる2回目以降の現在位置の測位ができない場合のチェックポイント

iOS8でCLLocationManagerにより現在位置を測位する手法が変更となったが、下記の手法の他にも留意すべき点がある。

iOS8で位置情報を取得する
http://iphone-app-developer.seesaa.net/article/405801453.html

iOS7以前のコードでは、下記のようにCLLocationManagerがnilであった場合にのみCLLocationManagerを初期化していたが、iOS8の場合、このコードでは2回目以降の測位時において、 - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status メソッドが呼び出されず、従ってCLLocationManagerの許認可状態が取得できないため、正しく測位がなされない。
if (nil == self.locationManager) {
self.locationManager = [[CLLocationManager alloc] init];
}


iOS8では、測位前は無条件にCLLocationManagerを初期化するようにすること。
self.locationManager = [[CLLocationManager alloc] init];


ラベル:apple iPAD Mac IOS iPhone
posted by mobileDeveloper at 15:26 | Comment(0) | TrackBack(0) | CLLocation 現在位置情報 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック