问题描述
我是 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
声明为未释放的属性。然后,按预期调用完成块。