强制CLGeocoder块代码同步运行

时间:2011-11-01 14:56:17

标签: objective-c ios xcode

我使用CLGeocoder对地址列表进行地理编码,以便可以在UITableView中向用户显示某些类型的信息。但是,所有CLGeocoder地理编码和反向地理编码方法都将一个代码块作为参数,每当地理编码请求完成时,该代码块将从程序的其余部分异步运行:

- (void)geocodeAddressString:(NSString *)addressString 
completionHandler:(CLGeocodeCompletionHandler)completionHandler

有没有办法强制此代码同步运行(即强制程序等待地理编码请求完成并等待处理程序处理它,然后再继续)。< / p>

1 个答案:

答案 0 :(得分:4)

不,没有。如果有,那将是一个非常糟糕的主意(至少如果你在主线程上异步运行它)。您无法控制地理编码过程需要多长时间(如果服务器超时可能需要几十秒),如果花费的时间超过5秒,操作系统的监视程序计时器会立即终止您的应用程序,因为它不再响应。