ios – CLGeocoder如何设置超时?

我试图用CLLocation结构定义城市名称,用反向…方法请求到CLGeocoder对象,但我不知道如何设置超时?如果没有互联网连接请求时间可能需要大约30秒 – 它太长了…

解决方法

我没有任何内置的功能来处理这个问题.我已经开始使用以下解决方案了.在 Swift中道歉,我不会说流利的Objective-C.

这将给你2秒的超时

func myLookupFunction(location: CLLocation)
{
    let timer = NSTimer(timeInterval: 2,target: self,selector: "timeout:",userInfo: nil,repeats: false);
     geocoder.reverseGeocodeLocation(location){
        (placemarks,error) in
        if(error != nil){
          //execute your error handling
        }
        else
        {
          //execute your happy path
        }
    }
    NSRunLoop.currentRunLoop().addTimer(timer,forMode: NSDefaultRunLoopMode)
}

func timeout(timer: NSTimer)
{
    if(self.geocoder.geocoding)
    {
        geocoder.cancelGeocode();
    }
}

超时触发后,将执行回调并调用错误路径.

您将收到有关详细信息的错误:

>代码= 10
>本地化描述(英语)=无法完成操作. (kCLErrorDomain错误10.)

希望这可以帮助.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...