iOSのdidUpdateHeading(電子コンパス)で値が-1しか返ってこない場合の対処方法

  • 2013.11.23
  • 2013.11.23
  • iOS

久しぶりに自作iOSアプリ『CompassShot』をメンテしていたら

– (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

newHeadingが-1しか返ってこなく、原因を調査した結果

真北の取得に失敗すると -1 が返ってくるようです。
 
主な原因として

『設定』→『プライバシー』→『位置情報サービス』→『システムサービス』→『コンパスの調整』

がOFFの場合必ず取得に失敗して -1 が返ってきます。
 
もし同じ現象で困っておられる方がおられたら参考にしてみてください。