0

我有以下快速代码:它旨在找到设备的当前磁航向(即 N、E、S、W)

class ViewController: UIViewController ,CLLocationManagerDelegate {

    var lm:CLLocationManager!

    override func viewDidLoad() {
        super.viewDidLoad()

        lm = CLLocationManager()
        lm.delegate = self

        lm.startUpdatingHeading()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func locationManager(manager: CLLocationManager!, didUpdateHeading newHeading: CLHeading!) {
        println(newHeading.magneticHeading)
    }
}

似乎它应该工作,但它没有。有人可以改进它吗?

4

1 回答 1

0

首先,您必须将以下行添加到您的 info.plist:

任何一个

<key>NSLocationWhenInUseUsageDescription</key>
<string></string>

或者

<key> NSLocationAlwaysUsageDescription</key>
<string></string>

取决于您对应用程序的真正需求。

此处描述了这两个键。

然后,您应该要求用户授权,正如 sbarow 在对您的问题的评论中已经指出的那样,通过

lm.requestWhenInUseAuthorization()
于 2015-06-08T11:07:17.193 回答