所以我问了一个关于我与didEnterRegion相关的代码的问题,但也许我太具体了,因此我可以请某人用更通用的术语来阐明方法调用的顺序以进行区域监视,尤其是在后台运行应用程序时。
我的理解是:
这是我的理解,这可能是错误的,因为如果应用程序在后台运行,则不会触发我的UILocalNotification。有人可以弄清楚哪些位错了吗?
最佳答案
经过进一步的测试,我得出的结论是我的代码没有任何问题,实际上这似乎是苹果公司对区域监视的实施效果不佳。它似乎仅比监视重大位置变化好一点,并且仍然依赖于wifi网络和基站的变化。即使在英国一个主要城市内,我也发现EnterEnterRegion不会被触发,直到您到达一英里宽的区域(直到1000米)为止(如果触发的话)。这解释了为什么在通过Xcode测试并强制定位时每次都能工作。
到目前为止,我所能解决的唯一问题是计算每次更新用户位置时剩余的距离,并在小于区域radius / 2时手动调用didEnterRegion委托方法。当您进入边界10m以上时,应该由Apples代码自动完成此操作,但是由于上述原因,我发现这样做并不可靠。
但是,由于在后台运行该应用程序时无法使用GPS精度更高的定期更新,而这仅是在后台运行时才存在的问题,它根本不是解决方案。 :o(
关于ios - didEnterRegion执行顺序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19767083/