我使用CLGeocoder
对地址列表进行地理编码,以便可以在UITableView
中向用户显示某些类型的信息。但是,所有CLGeocoder
地理编码和反向地理编码方法都将一个代码块作为参数,每当地理编码请求完成时,该代码块将从程序的其余部分异步运行:
- (void)geocodeAddressString:(NSString *)addressString
completionHandler:(CLGeocodeCompletionHandler)completionHandler
有没有办法强制此代码同步运行(即强制程序等待地理编码请求完成并等待处理程序处理它,然后再继续)。< / p>
答案 0 :(得分:4)
不,没有。如果有,那将是一个非常糟糕的主意(至少如果你在主线程上异步运行它)。您无法控制地理编码过程需要多长时间(如果服务器超时可能需要几十秒),如果花费的时间超过5秒,操作系统的监视程序计时器会立即终止您的应用程序,因为它不再响应。