didEnterRegion和didDetermineState都调用

时间:2017-07-20 12:17:38

标签: ios geofencing

我在我的应用中使用区域监控功能。我希望在用户进入该区域时以及他是否已经在该位置时收到通知。

因此实施了位置管理员didEnterRegiondidDetermineState

现在问题是当我进入地理围栏区域时,它会通知两次。一个来自didEnterRegion,另一个来自didDetermineState。

什么是最佳解决方案?我只需要在输入时通知一次。

1 个答案:

答案 0 :(得分:0)

请仅使用" didDetermineState"。在您进入/退出该区域时将调用它。使用以下代码" didDetermineState"。

switch state{
       case .inside:
       print("INSIDE")
       break
       case .outside:
       print("OUTSIDE")
       break
       case .unknown:
       print("UNKNOWN")
       break
}

要确定当前位置,请使用" didStartMonitoringFor"。调用以下行后将执行此功能。

locationManager.startMonitoring(for: region)

Inside" didStartMonitoringFor"使用以下行:

locationManager.requestState(for: region)

这将再次调用" didDetermineState"并将提供您当前的状态" INSIDE / OUTSIDE"