iOS Swift(Xcode) - 初始化类可以无错误地停止脚本(GMSCircle)

时间:2016-08-04 22:44:48

标签: ios swift xcode google-maps-sdk-ios gmsmapview

尝试从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不够了解。

有什么想法吗?

0 个答案:

没有答案