swift - LocationManager didEnterRegion 未调用(再次)

标签 swift cllocationmanager clregion

我正在尝试注册区域,以便在用户输入时收到通知。这是我使用的代码:

public func locationManager(manager:CLLocationManager, didEnterRegion region:CLRegion){
    print("did enter region \(region)")
    let regionPalina=region.identifier;
    if regionPalina==palina{
        regionMonitoringCompletion?()
    }
}

public func locationManager(manager: CLLocationManager, monitoringDidFailForRegion region: CLRegion?, withError error: NSError){
        print(error.localizedDescription)
}

let myLocationManager=CLLocationManager()

func startMonitoringForRegion(completion:(Void->Void)){
    regionMonitoringCompletion=completion;
    myLocationManager.delegate=self
    if !monitoredForRegion{
        myLocationManager.startMonitoringForRegion(self.regionForPalina())
        monitoredForRegion=true
    }
}

public func locationManager(manager: CLLocationManager, didStartMonitoringForRegion region: CLRegion){
    print("region: \(region) registered")
    print(myLocationManager.monitoredRegions)
}

public func locationManager(manager: CLLocationManager, didDetermineState state: CLRegionState, forRegion region: CLRegion){
    print("state transition \(state)")
}

func stopMonitoringForRegion(){
    myLocationManager.delegate=nil
    regionMonitoringCompletion=nil
    if !monitoredForRegion {
        myLocationManager.stopMonitoringForRegion(self.regionForPalina())
        monitoredForRegion=false
    }
}

注册似乎很顺利,因为 didStartMonitoringForRegion 被调用并且它正确地打印了 protectedRegions。然而 didEnterRegion 和 didDetermineState 都没有被调用,甚至监听DidFailForRegion 都没有被调用。

业务可能是什么?

最佳答案

我最终用用户位置来模拟这些东西。

关于swift - LocationManager didEnterRegion 未调用(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211252/

相关文章:

swift - addSnapshotListener 仅获取 firebase 集合中的更改

ios - 如何在加载所有 viewDidLoad 内容之前获取 CLLocationManager 结果?

ios - 获取当前位置而不是缓存 ios

ios - 在ios中实现CLLocationManager的didUpdateLocations委托(delegate)方法

ios7 - iOS 7 didEnterRegion 根本没有被调用

ios - 通知中心值第一次、第二次没有更新

ios - 在 UICollectionViewCell 中添加带计时器的倒计时标签的最佳方法,即使在单元格被重用后也能正常工作

iOS - 设备/用户进入新城市时的区域监控?

ios - LocatinManager 的 iOS CLRegion 功能的最小半径

swift - 在 iOS 13 中隐藏状态栏