【发布时间】:2015-10-25 05:52:24
【问题描述】:
我可以说我不知道这是如何/为什么发生的。
我正在开发一个 watchOS 2 应用程序。我整天都在研究它,它使用核心位置。它一直在获取当前位置就好了。我需要纬度/经度才能进行将这些作为参数的网络调用。
无论如何,我在进行现场测试时发现我的应用程序崩溃了。它一遍又一遍地在我的手表上崩溃。
回家调试,我注意到 URL 的坐标值为零。奇怪的是,它连续几个月每天都在工作。我没有对核心位置代码进行任何更改。
我正在使用
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
为了检测何时进行网络调用。只有当我有这些坐标时,我才能进行网络调用。我查看locations 参数以查看它是否大于0,然后我得到其中最后一个对象的纬度/经度。我还检查了我正在运行的locationManager 实例中的值。
无论如何,这些值是nil!如果函数 locationManager:didUpdateWithLocations: 被调用,这些值怎么可能为零?
我很困惑,因为它只是发生在现场测试的中间。当我出去的时候它整天都在工作,然后它就停止了。我的 Apple Watch 上的地图应用程序等其他应用程序运行正常。此外,所有位置权限均已启用。我什至删除了我的 iOS 设备和手表上的应用程序,开始使用新的应用程序。那并没有解决问题。
我只是在从网络服务器获得成功响应后才调用该函数来停止更新位置,只有当我从核心位置获得纬度/经度的合法值时才会启动。
有什么想法吗?
【问题讨论】:
标签: swift core-location watchkit apple-watch watchos-2