当我开始监控像
这样的地区时locationManager.startMonitoringForRegion(tGeoFence[wert][wert2])
并尝试确定它是否已经在此之后输入:
for region in locationManager.monitoredRegions {
if let cireg = region as? CLCircularRegion {
if cireg.identifier == tGeoFence[wert][wert2].identifier {
locationManager.requestStateForRegion(cireg)
}
}
}
不起作用,导致在执行代码的第二部分时未完成区域的注册。延迟该部分的执行似乎很难看(diddeterminestate not always called),有没有更好的方法来解决这个问题?
答案 0 :(得分:5)
发现,显然 didStartMonitoringForRegion 委托功能是要求 requestStateForRegion 的正确位置:
01
编辑:可怕的是,我仍然需要短暂的延迟,或者有时不会调用 requestStateForRegion :
func locationManager(manager: CLLocationManager, didStartMonitoringForRegion region: CLRegion) {
locationManager.requestStateForRegion(region)
}
:(