gpt4 book ai didi

swift2 - Swift 中 startMonitoringForRegion 之后的 RequestStateForRegion

转载 作者:行者123 更新时间:2023-12-02 09:30:46 25 4
gpt4 key购买 nike

当我开始监控一个区域时

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

最佳答案

发现,显然 didStartMonitoringForRegion 委托(delegate)函数是请求 requestStateForRegion 的正确位置:

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

编辑:糟糕的是,我仍然需要短暂的延迟,或者有时 requestStateForRegion 没有被调用:

func locationManager(manager: CLLocationManager, didStartMonitoringForRegion region: CLRegion) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
self.locationManager.requestStateForRegion(region)
}
}

: (

关于swift2 - Swift 中 startMonitoringForRegion 之后的 RequestStateForRegion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com