我有以下快速代码:它的目的是找到设备当前的磁航向(即 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)
}
}
看起来应该有效,但事实并非如此。有人可以改进吗?
最佳答案
首先,您必须将以下行添加到您的 info.plist 中:
或者
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
或
<key> NSLocationAlwaysUsageDescription</key>
<string></string>
取决于您对应用程序的真正需求。
这两个键都有描述 here .
然后,您应该请求用户授权,正如 sbarow 已经在您的问题的评论中指出的那样,通过
lm.requestWhenInUseAuthorization()
关于ios - 设备磁航向代码在 iOS 8 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706697/