2012-06-04 40 views
3

我正在编写一个应用程序,该应用程序应提醒用户在到达指定零售商店附近(300米内)时提醒用户。iOS:如何在到达商店附近时通知用户

我现在用的是API

[locationManager startMonitoringForRegion:grRegion desiredAccuracy:acc];

,但没能获得进入和退出区域的事件。

我的问题是

  1. 如何准确的是这个API。如果我们指定了300米的范围,是否准确地开火?或者只有当用户从一个蜂窝塔改变到另一个时,这个事件才会被触发。
  2. 如果在300米内无法获得活动,我该如何执行我的要求。

PS: - 我不想使用API​​ [locationManager startUpdatingLocation];,因为它会很快耗尽电池。

在此先感谢。

回答

4

您需要执行CLLocationManagerDelegate才能拦截-didEnterRegion-didExitRegion的位置回调。

我一直在我的应用程序中使用这个确切的API近一年了,我发现它非常准确,电池消耗最少。我会说这应该是你最好的途径,不会考虑使用-startUpdatingLocation,因为它需要更多的代码来实现你所需要的,更不用说电池命中了。

执行委托和方法,你应该很好去。您也可以使用模拟器中的位置更改进行测试。在真实世界使用前测试它们,让事情运行良好。

+0

我正在注册所有代表,但我没有收到回电。当我阅读一些博客时,我读到'startMonitoringForRegion'仅在用户在单元塔之间切换时触发。我再次检查我的代码,看看我做错了什么。非常感谢你的答复。 –

+0

-startMonitoringForRegion的触发次数比单元格转换更频繁。链接到手机信号塔的是-startMonitoringForSignificantChange。我发现区域监测非常非常准确。它只会在你越过边界时才会开火。所以如果你在里面的时候启用它,在你离开之前什么都不会发生。 –

+0

太棒了!那就是我想要的。谢谢。 –