我在我的应用中使用区域监控功能。我希望在用户进入该区域时以及他是否已经在该位置时收到通知。
因此实施了位置管理员didEnterRegion
和didDetermineState
。
现在问题是当我进入地理围栏区域时,它会通知两次。一个来自didEnterRegion,另一个来自didDetermineState。
什么是最佳解决方案?我只需要在输入时通知一次。
答案 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"