谷歌地图全景请求没有回调

问题描述

我是 Google 地图 SDK 的新手。我编写了一个小测试应用程序,它能够显示带有路线的地图和街景全景图。这工作正常,即所有内容(Google 帐户、API 密钥等)都可能已正确设置。
我现在尝试使用

获取街景全景元数据
dispatchQueue.main.async {
    let panoramaService = GMSPanoramaService()
    panoramaService.requestPanoramaNearCoordinate(start) { pano,error in
        guard error == nil else { fatalError() }
    }
}

其中 start 是某个坐标。
我在 requestPanoramaNearCoordinate 调用和回调中的 guard 语句中设置了断点。到达第一个断点,但没有到达第二个断点,即没有回调
可能是什么原因?

解决方法

这是我的错:
我将 panoramaService 初始化为一个变量本地于异步块
requestPanoramaNearCoordinate 一执行,这个变量就被释放了,因此完成块没有被调用。
正确的方法是将 let panoramaService 声明为未释放的属性。然后,按预期调用完成块。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...