我正在编写一个应用程序,它使用该位置有两个目的:
1)它显示用户在地图上的位置(具有类似导航的准确性),位置管理器实例和委托包含在viewcontroller中
2)在后台,即使关闭,它也会获取最近的20个兴趣点(列表存储在userdefaults中),并为这些点激活地理围栏,因此当用户靠近时会被注意到。这是通过尽可能低的精确度(3km)来实现的,并在另一个位置管理器实例中设置,在应用程序首次打开时启动。
问题是,CLLocationmanager对象似乎是静态的,所以当我从两个不同的地方调用它时,返回的是同一个实例,而且精度、间隔等似乎是相同的,因为两个委托始终同时调用。
因此,geofeences设置方法一直被调用,当用户只是移动一点时,我希望地图能反映出来。
最佳答案
是的,只有一个位置经理。所以当你进入背景和回到前景时重新配置它。在这些时候将其委托切换到另一个对象可能也很方便(这样每个委托对象都可以专注于一个问题)。
关于ios - 在背景中以较低的精度更新地理围栏,以高精度更新 map 上的位置,无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42752486/