我的应用程序有一些奇怪的行为。
在我的应用程序委托文件中,我请求用户在他们使用应用程序时使用他们的位置。这很好,我可以获得他们的当前位置。在我得到它们的初始位置后,我停止更新位置。太好了。用户可以点击一个按钮开始更新位置。
如果应用程序在前台,我可以看到每秒钟都有位置被添加到我的字典中(稍后我会将其更改为distanceFilter 10)。如果用户把应用放到后台定位服务停止,我看不到屏幕顶部的蓝条。
我:
- 启用位置更新的后台模式
- NSLocationWhenInUseUsageDescription集(我能够成功地向用户请求许可)
- 使用startUpdatingLocation()启动位置更新
- 尝试设置应用程序始终跟踪位置(相同的结果)
- 从我的手机中删除应用程序并重新安装
在我的应用程序的上一个版本(在Swift 2之前),这是完美的工作。即使应用程序在后台运行,我也能看到位置被跟踪。
我在我的iPhone上测试,而不是模拟器。
如果其他人有同样的问题,我已经更新了我的iPhone到iOS9,所以我需要添加
locationManager.allowsBackgroundLocationUpdate = true
以下为我工作,请注意allowsBackgroundLocationUpdates是复数
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.allowsBackgroundLocationUpdates = true