iOSアプリ開発
iOS8でLocationManagerのdidUpdateLocationsが呼ばれない
LocationManagerの、startUpdatingLocationの後、
didUpdateLocationsが呼ばれない現象にはまった。
didFailWithErrorも実装してみたけども、そちらも呼ばれる気配なし。
iOS8にする前は呼ばれていたので、OSのアップデートが絡んでそう
とりあえず調べたら、plistへのキー追加が必要になったらしいです。
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
の二つのキーを、plistに追加して値は空文字でOK
位置サービス許可のダイアログが出るときに、メッセージとして表示される文言っぽいです。
これだけではまだ動かず、requestWhenInUseAuthorizationも必要でした。
なのでコードにするとこんなかんじ。
1 2 3 4 5 6 7 8 9 10 11 12 |
self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; [self.locationManager requestWhenInUseAuthorization]; // 取得精度 self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 更新頻度(メートル) self.locationManager.distanceFilter = kCLDistanceFilterNone; // サービスの開始 [self.locationManager startUpdatingLocation]; |