我一直在开发一个应用程序,该应用程序使用 iOS 的定位服务和 swift。在 ios9 之前一直很好。出于某种原因,我的应用程序在后台运行时停止运行,但仅在物理设备上运行。模拟器在后台运行良好。我正在通过 NSLog 记录内容,因此我可以判断它是在设备上停止还是在 sim 上停止。
是的,我设置了 info.plist。是的,我打开了后台功能。这在 iOS8 中确实有效,但由于某些原因,在 9 中应用程序停止在后台执行。
我在设置中打开了后台刷新,我的应用设置为始终请求位置更新,这也在手机设置中打开。
对于为什么会发生这种情况,我有点不知所措,所以我猜测可能需要对 xcode7 和/或 ios9 进行一些代码更改,我需要实现这些更改。
非常感谢任何帮助!!!
罗布
最佳答案
看来 Apple 在 iOS9 中需要一个新东西:
allowsBackgroundLocationUpdates = true
这是给位置管理员的。
我的最终代码如下:
// this is needed for ios9 to get the location even when it's backgrounded
if #available(iOS 9.0, *) {
self.locationManager.allowsBackgroundLocationUpdates = true
} else {
// Fallback on earlier versions
}
关于ios - 应用程序后台刷新ios9 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994680/