【问题标题】:GMSGeocoder reverseGeocodeCoordinate function not working on background threadGMSGeocoder reverseGeocodeCoordinate 函数在后台线程上不起作用
【发布时间】:2021-09-26 23:55:08
【问题描述】:

我正在尝试从后台线程调用 GMSGeocoder 类的 reverseGeocodeCoordinate 函数。但它不起作用。完成处理程序没有被调用。如果我从主线程调用该函数,它工作正常。 但是这种方法有时会使应用程序变慢,因为这个函数会被连续调用。 有没有办法从后台线程调用reverseGeocodeCoordinate函数?

下面是我当前的代码。

DispatchQueue.main.async {
                let geoCoder = GMSGeocoder()
                geoCoder.reverseGeocodeCoordinate((coordinate), completionHandler: {
                    reverseGeoCodeResponse, error in
                    // processing
                 }
}

此代码有效。但是,如果我将 DispatchQueue.main 更改为 DispatchQueue.global(),则不会调用 completionHandler。我想在后台调用这个 API。

【问题讨论】:

  • 没有。从哪个线程调用函数“checkCitiesWithCompletionBlock”,在此链接中未指定。我想从后台线程调用这个函数。
  • 请提供一些代码改进您的问题。
  • 另外,无论如何,您不应该定期对位置进行反向地理编码。出于性能和隐私原因。

标签: ios swift reverse-geocoding


【解决方案1】:

为什么不直接从主线程调用它呢?看起来调用是在后台线程上发送的,并且文档说回调是在主线程上调用的。

您不需要在后台线程上进行调用,也不需要确保在主线程上完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2020-03-10
    • 2011-10-24
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多