如何保存位置sqlite或CoreData中的坐标在swift

时间:2016-12-09 09:45:25

标签: swift core-data cllocationmanager fmdb

我想在位置管理器didUpdateLocation委托函数中保存坐标。应用程序可能处于挂起或后台状态,因此无法依赖于数组。我希望使用FMDB或CoreData保存它,但我需要知道我是否可以正常保存记录的位置,还是需要使用后台到期处理程序。如果它是后者请分享一个可靠的方法,以迅速。

我正在使用重要的位置监控工作正常。

2 个答案:

答案 0 :(得分:0)

有充足的时间。至少我是在我的应用中完成的,无需使用beginBackgroundTaskWithExpirationHandler

尽管如此,考虑在后台使用allowDeferredLocationUpdatesUntilTraveled来降低能耗。

答案 1 :(得分:0)

我发现拆分功能更容易,更安全。当我调用locationManager didUpdateLocations委托时,我会快速将位置点附加到待处理位置数组并退出。然后我使用一个计时器驱动的processPendingPoints函数定期将待处理位置数组中的新点添加到我的地图并清除数组,其中计时器和处理函数将仅在应用程序位于前台时运行(这对我来说很好)目的)。

通常,我对待处理位置处理器使用10秒延迟,但在电池电量不足时减慢此过程和其他过程。由于我不需要快速使用此方法,因此我可以重新定位或调整地图大小并执行其他实用程序以及添加点。