尝试从Google Maps SDK初始化GMSCircle类时,我遇到了一个奇怪的问题。
我的MapViewController中包含一个GMSMapView:
func createCircleOnMap(map: GMSMapView, circleCenter: CLLocationCoordinate2D, circleRadius: Double) {
print("TEST 1")
let addCircle = GMSCircle()
print("TEST 2")
addCircle.position = circleCenter
addCircle.radius = circleRadius
addCircle.map = map
}
如果我从viewDidLoad()或mapView委托" didTapAtCoordinate"调用此函数,我可以毫无问题地向地图添加圆圈。
但是,如果我从完成处理程序调用该函数(在我的情况下,通过AWS SDK从AWS Lambda返回信息后),我永远不会通过GMSCircle初始化。
这是我的Lambda函数:
func getMapData() {
let json: NSDictionary = ["test" : "TEST"]
let lambdaInvoker = AWSLambdaInvoker.defaultLambdaInvoker()
lambdaInvoker.invokeFunction("MyLambdaFunction", JSONObject: json, completionHandler: { (response, err) -> Void in
if (err != nil) {
print("Error: \(err)")
} else if (response != nil) {
// PARSE THE JSON HERE
self.createCircleOnMap(<#T##map: GMSMapView##GMSMapView#>, circleCenter: <#T##CLLocationCoordinate2D#>, circleRadius: <#T##Double#>)
}
})
}
json解析正常(我检查了这些值),当我将它传递给createCircleOnMap时,我得到:
print("TEST 1")
在控制台中,但没有别的。它只是停止而没有错误。
如果我移动&#34; addCircle&#34;我也会得到相同的结果。代码到Lambda函数完成处理程序内部。我的测试打印日志&#34; TEST 1&#34;返回,但脚本只是停止而没有错误。
我也尝试了初始化程序:
let addCircle = GMSCircle(position: circleCenter, radius: circleRadius)
具有相同的结果。
我甚至不确定如何调试此问题。我检查了所有值,包括从Lambda完成处理程序内部向函数发送硬编码值,但它仍然无法正常工作。也许我对Swift不够了解。
有什么想法吗?