設定等がちゃんとしているであれば以下のコードで取得できると思います、参考にしてください。
※ 載せているサイトの例をSwift3
に置き換えてみました。
swift
1import UIKit
2import CoreLocation
3
4class ViewController: UIViewController, CLLocationManagerDelegate {
5
6 let locationManager = CLLocationManager()
7 @IBOutlet weak var textField: UITextField!
8
9 override func viewDidLoad() {
10 super.viewDidLoad()
11
12 if CLLocationManager.locationServicesEnabled() {
13 locationManager.delegate = self
14
15 // 何度動いたら更新するか(デフォルトは1度)
16 locationManager.headingFilter = kCLHeadingFilterNone
17
18 // デバイスのどの向きを北とするか(デフォルトは画面上部)
19 locationManager.headingOrientation = .portrait
20
21 locationManager.startUpdatingHeading()
22 }
23 }
24
25 func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
26 self.textField.text = "".appendingFormat("%.2f", newHeading.magneticHeading)
27 }
28
29 func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
30 switch status {
31 case .notDetermined:
32 locationManager.requestWhenInUseAuthorization()
33 case .restricted, .denied:
34 break
35 case .authorized, .authorizedWhenInUse:
36 break
37 }
38 }
39}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。