在Swift中的startMonitoringForRegion之后的RequestStateForRegion

时间:2015-10-22 17:38:41

标签: swift2 cllocationmanager

当我开始监控像

这样的地区时
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),有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:5)

发现,显然 didStartMonitoringForRegion 委托功能是要求 requestStateForRegion 的正确位置:

01

编辑:可怕的是,我仍然需要短暂的延迟,或者有时不会调用 requestStateForRegion

func locationManager(manager: CLLocationManager, didStartMonitoringForRegion region: CLRegion) {
    locationManager.requestStateForRegion(region)   
}

:(