ios – CLGeocoder如何设置超时?

前端之家收集整理的这篇文章主要介绍了ios – CLGeocoder如何设置超时?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用CLLocation结构定义城市名称,用反向…方法请求到CLGeocoder对象,但我不知道如何设置超时?如果没有互联网连接请求时间可能需要大约30秒 – 它太长了…

解决方法

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

这将给你2秒的超时

@H_404_8@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相关文章