所以我问了一个关于我的代码与didEnterRegion有关的问题,但也许我太具体了,因此我可以请某人用更通用的术语来区分方法调用,特别是当应用程序在后台时
我的理解是:
这是我的理解,这可能是错误的,因为如果应用程序在后台,我的UILocalNotification永远不会被触发。有人可以澄清哪些是错的吗?
答案 0 :(得分:0)
经过进一步测试后,我得出的结论是,我的代码没有任何问题,实际上似乎是苹果实施的区域监控效果不佳。它似乎只比监控重要的位置变化略好,并且仍然依赖于wifi网络和蜂窝塔的变化。即使在英国的一个主要城市,我发现在没有触发的情况下,如果你被触发到1000英里到一英里宽的地区,那么就不会触发它。这解释了为什么每次通过Xcode测试并强制定位时它都能正常工作。
我到目前为止唯一的解决方法是计算每次更新用户位置时剩余的距离,并在小于区域radius / 2时手动调用didEnterRegion委托方法。当你进入边界超过10米时,这应该由苹果代码自动完成,但是由于上述原因我发现它是不可靠的。
然而,鉴于你无法使用更好的GPS准确度获得定期更新,而应用程序在后台,这只是一个问题,当应用程序在后台时,它根本不是一个真正的解决方案。 :O(