我想在我的应用中实现指南针。我看了另一个堆栈溢出问题,它说你可以使用下面的代码
viewDidLoad方法中的此代码
var lm:CLLocationManager!
lm = CLLocationManager()
lm.delegate = self
lm.startUpdatingHeading()
这个功能在视图控制器的某个地方
func locationManager(manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {}
但是当我在模拟器上运行我的代码时,函数没有被调用(是的,我确实导入了CoreLocation并模拟了一个位置)。我做错了什么?
答案 0 :(得分:0)
如果您希望此方法可以运行,请在设备中运行应用程序,或者您可以使用gpx文件并在xcode终端中模拟位置
答案 1 :(得分:0)
首先,模拟器没有指南针。你根本无法在SIM卡上做到这一点。
其次,我不确定您是否必须征得用户的同意才能获得标题信息。对于GPS,您需要在info.plist中输入一个条目并拨打电话以请求授权。我没有完成标题代码,因为添加了授权要求所以我不确定你是否必须为标题做这个。快速浏览文档并未提及它。
我建议在设置标题更新时咨询Xcode文档:
关键是:
获取标题事件:
创建CLLocationManager对象。
通过调用headingAvailable类方法确定标题事件是否可用。
将委托分配给位置管理器对象。
如果您想要真北值,请启动位置服务。
调用startUpdatingHeading方法开始传送标题事件。